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