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與抽象類之間的不同
都可以被繼承
都不能被實例化
都可以包含方法聲明
抽象類是部分抽象,單繼承,接口是完全抽象,多繼承。
注:本文部分文字和圖片來源于網絡,如有侵權,請聯系刪除。版權歸原作者所有!此頁面下方聲明無效!