1.结构体和类有何区别?
结构体是一种值类型,而类是引用类型。那么结构体就是当成值来使用的,类则通过引用来对实际数据操作
2.值类型和引用类型有何区别?
1.值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,引用类型的变量持有的是数据的引用,
2.值类型存取速度快,引用类型存取速度慢。
3.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
4.值类型继承自System.ValueType,引用类型继承自System.Object
5.栈的内存分配是自动释放;而堆在.NET中会有GC来释放
6.值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
3.Heap与Stack有何区别?
1.heap是堆,stack是栈。
2.stack的空间由操作系统自动分配和释放,
heap的空间是手动申请和释放的,heap常用new关键字来分配。
3.stack空间有限,heap的空间是很大的自由区。
4.请简述ArrayList和List的主要区别?
List是接口,ArrayList是一个实现了该接口的类,可以被实例化
ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做Object来处理)
装箱拆箱的操作(费时)
5.请简述装箱拆箱
装箱 就是把“值类型”转换成“引用类型”(Object);
拆箱 就是把“引用类型”转换成“值类型”;
6.请简述sealed关键字用在类声明时与函数声明时的作用
sealed修饰的类为密封类,类声明时可防止其他类继承此类,在方法中声明则可防止派生类重写此方法。
7.请简述private,public,protected,internal的区别
public:对任何类和成员都公开,无限制访问
private:仅对该类公开
protected:对该类和其派生类公开
internal:只能在包含该类的程序集中访问该类
8.请描述Interface与抽象类之间的不同
都可以被继承
都不能被实例化
都可以包含方法声明
抽象类是部分抽象,单继承,接口是完全抽象,多继承。
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!