博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我对类和结构的一点理解
阅读量:5157 次
发布时间:2019-06-13

本文共 845 字,大约阅读时间需要 2 分钟。

1 首先说明一下到目前为止我掌握的一点点的知识。

A 类是引用类型。 可以自动以默认的构造的函数。

B 结构是值类型,所有的值类型都是基于结构类型的, 不可以自动以默认的构造函数。

C 类和结构进行比较的时候都是比较他们的引用,但是为什么值类型进行比较的时候会认为他们是相同的,或者是不相同的那,这是因为值类型都是先了一个接口Tcompare 。这样即使是两个值类型的地址空间不一样,也不会认为他们是相同的,而是相同的,应该是实现了两个接口,另外一个接口是什么,有时间进行研究一下。

对字段的初始值有一个简便的语法支持,类是支持的,而结构是不支持的。

struct  structStu    {		int i ; //int i =5 这么做是错的的写法  为什么这么写是错误的啊,因为struct不能自定义默认的构造函数。		int j ;		public structStu(int ii)		{			i=ii ; //构造函数必须对所有的变量进行初始化。			j = ii; //如果没有这行代码,也是错误的。		}    }
D  什么情况下使用结构

和简单值类型具有相似的行为。 所有的简单值类型都是基于结构类型的。

        数据成员大小在16kb一下。 因为结构的内存是分配在栈上的,如果频繁使用的话,会导致数据被大量的复制。

       不需要特别的初始化操作。 这是因为结构不提供默认的构造函数。

F 结构是一种轻量级的数据封装结构。

本人的疑惑点 :

结构分配到堆上,和分配到栈上有啥区别 ?

栈 是系统分配的,先进后出的原这。地址是连续的,效率比较快。

堆 是程序员分配的,地址不连续,效率比较慢。

综上所述, : 结构是一个特殊的类型,没有理解清楚的情况下,少用,否则会带来程序资源的极大浪费,以及计算效率的低下。

以后有时间了 写一个结构的专题吧!

转载于:https://www.cnblogs.com/sdgxbooy/archive/2012/01/08/8902793.html

你可能感兴趣的文章
ionic iphone下的问题
查看>>
使用CablleStatement调用存储过程
查看>>
ios 怎么禁止点击子视图的时候不响应父视图的点击事件
查看>>
HDFS
查看>>
C# 5.0
查看>>
Android PdfViewer
查看>>
[CATARC_2017] 第八周
查看>>
使用NetronGraphLib类库开发Qfd质量屋编制工具
查看>>
S. gcc相关软件安装
查看>>
小米手机连接不上网络 或者 暂时关闭状况不佳的连接
查看>>
45道sql
查看>>
工作记录 反射
查看>>
Python数据结构————二叉查找树的实现
查看>>
转载:一步一步和我学Apache JMeter
查看>>
Mac下 javac java 进行编译和运行含有包路径及引入jar包的类
查看>>
响应式布局如何实现
查看>>
python3自己主动爬笑话
查看>>
【c++】简单的string类的几个基本函数
查看>>
php 基础入门篇之前言
查看>>
spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析
查看>>