1.結(jié)構(gòu)體和類有何區(qū)別?
結(jié)構(gòu)體是一種值類型,而類是引用類型。那么結(jié)構(gòu)體就是當(dāng)成值來使用的,類則通過引用來對實(shí)際數(shù)據(jù)操作
2.值類型和引用類型有何區(qū)別?
1.值類型的數(shù)據(jù)存儲在內(nèi)存的棧中;引用類型的數(shù)據(jù)存儲在內(nèi)存的堆中,引用類型的變量持有的是數(shù)據(jù)的引用,
2.值類型存取速度快,引用類型存取速度慢。
3.值類型表示實(shí)際數(shù)據(jù),引用類型表示指向存儲在內(nèi)存堆中的數(shù)據(jù)的指針或引用
4.值類型繼承自System.ValueType,引用類型繼承自System.Object
5.棧的內(nèi)存分配是自動釋放;而堆在.NET中會有GC來釋放
6.值類型的變量直接存放實(shí)際的數(shù)據(jù),而引用類型的變量存放的則是數(shù)據(jù)的地址,即對象的引用。
3.Heap與Stack有何區(qū)別?
1.heap是堆,stack是棧。
2.stack的空間由操作系統(tǒng)自動分配和釋放,
heap的空間是手動申請和釋放的,heap常用new關(guān)鍵字來分配。
3.stack空間有限,heap的空間是很大的自由區(qū)。
4.請簡述ArrayList和List的主要區(qū)別?
List是接口,ArrayList是一個(gè)實(shí)現(xiàn)了該接口的類,可以被實(shí)例化
ArrayList存在不安全類型(ArrayList會把所有插入其中的數(shù)據(jù)都當(dāng)做Object來處理)
裝箱拆箱的操作(費(fèi)時(shí))
5.請簡述裝箱拆箱
裝箱 就是把“值類型”轉(zhuǎn)換成“引用類型”(Object);
拆箱 就是把“引用類型”轉(zhuǎn)換成“值類型”;
6.請簡述sealed關(guān)鍵字用在類聲明時(shí)與函數(shù)聲明時(shí)的作用
sealed修飾的類為密封類,類聲明時(shí)可防止其他類繼承此類,在方法中聲明則可防止派生類重寫此方法。
7.請簡述private,public,protected,internal的區(qū)別
public:對任何類和成員都公開,無限制訪問
private:僅對該類公開
protected:對該類和其派生類公開
internal:只能在包含該類的程序集中訪問該類
8.請描述Interface與抽象類之間的不同
都可以被繼承
都不能被實(shí)例化
都可以包含方法聲明
抽象類是部分抽象,單繼承,接口是完全抽象,多繼承。
注:本文部分文字和圖片來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。版權(quán)歸原作者所有!此頁面下方聲明無效!