1、请简述值类型与引用类型的区别
答:区别:
1、值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
2、值类型存取快,引用类型存取慢。
3、值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4、栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。
5、值类型继承自System.ValueType,引用类型继承自System.Object。可参考:
http://www.cnblogs.com/JimmyZhang/archive/2008/01/31/1059383.html
2、C#中所有引用类型的基类是什么
答:引用类型的基类是System.Object 值类型的基类是System.ValueType,同时,值类型也隐式继承自System.Object
3、请简述ArrayList和List的主要区别
答:ArrayList存在不安全类型,(ArrayList会把所有插入其中的数据都当做Object来处理)装箱拆箱的操作(费时),List是接口,ArrayList是一个实现了该接口的类,可以被实例化。
4、请简述GC(垃圾回收)产生的原因,并描述如何避免?
答:GC回收堆上的内存,避免:
1)减少new产生对象的次数
2)使用公用的对象(静态成员)
3)将String换为StringBuilder
答:区别:
1、值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
2、值类型存取快,引用类型存取慢。
3、值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4、栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。
5、值类型继承自System.ValueType,引用类型继承自System.Object。可参考:
http://www.cnblogs.com/JimmyZhang/archive/2008/01/31/1059383.html
2、C#中所有引用类型的基类是什么
答:引用类型的基类是System.Object 值类型的基类是System.ValueType,同时,值类型也隐式继承自System.Object
3、请简述ArrayList和List的主要区别
答:ArrayList存在不安全类型,(ArrayList会把所有插入其中的数据都当做Object来处理)装箱拆箱的操作(费时),List是接口,ArrayList是一个实现了该接口的类,可以被实例化。
4、请简述GC(垃圾回收)产生的原因,并描述如何避免?
答:GC回收堆上的内存,避免:
1)减少new产生对象的次数
2)使用公用的对象(静态成员)
3)将String换为StringBuilder