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 结构是一种轻量级的数据封装结构。
本人的疑惑点 :
结构分配到堆上,和分配到栈上有啥区别 ?
栈 是系统分配的,先进后出的原这。地址是连续的,效率比较快。
堆 是程序员分配的,地址不连续,效率比较慢。
综上所述, : 结构是一个特殊的类型,没有理解清楚的情况下,少用,否则会带来程序资源的极大浪费,以及计算效率的低下。
以后有时间了 写一个结构的专题吧!