該系列持續(xù)更新,從網(wǎng)上以及身邊收集的問題
1.可訪問性級(jí)別有哪幾種
public 訪問不受限制。PRotected 訪問僅限于包含類或從包含類派生的類型。internal 訪問僅限于當(dāng)前程序集。protected internal 訪問僅限于從包含類派生的當(dāng)前程序集或類型。private 訪問僅限于包含類型。
2.String和StringBuilder的區(qū)別
String類有不可改變性。每次執(zhí)行字符操作時(shí),都會(huì)創(chuàng)建一個(gè)新的String對(duì)象。StringBuilder對(duì)象在初始化以后只有一個(gè)對(duì)象。在頻繁操作或拼接字符串時(shí)使用StringBuilder更好
*String是引用類型,存放在堆上
3.Struct和Class的區(qū)別
class是引用類型,structs是值類型class創(chuàng)建在堆上。struct創(chuàng)建在棧上class可以有初始化器,struct不可以有初始化器class可以有明顯的無(wú)參數(shù)構(gòu)造器,但是Struct不可以class使用前必須實(shí)例化,struct不需要class支持繼承和多態(tài),struct不支持class的構(gòu)造器不需要初始化全部字段,struct的構(gòu)造器必須初始化所有字段class有面向?qū)ο蟮臄U(kuò)展優(yōu)勢(shì),struct有性能優(yōu)勢(shì)
4.應(yīng)用程序域?托管代碼?強(qiáng)類型系統(tǒng)?裝箱和拆箱?重載?
應(yīng)用程序域(AppDomain)
可以看成輕量級(jí)的進(jìn)程,一個(gè)進(jìn)程中可以包含多個(gè)應(yīng)用程序域,一個(gè)應(yīng)用程序域可以裝載一個(gè)可執(zhí)行程序(*.exe)或者多個(gè)程序集(*.dll)。這樣可以使應(yīng)用程序域之間實(shí)現(xiàn)深度隔離,即使進(jìn)程中的某個(gè)應(yīng)用程序域出現(xiàn)錯(cuò)誤,也不會(huì)影響其他應(yīng)用程序域的正常運(yùn)作
托管代碼(Managed Code)
中間語(yǔ)言(IL)代碼,由公共語(yǔ)言運(yùn)行庫(kù)(CLR)執(zhí)行的代碼,而不是由操作系統(tǒng)直接執(zhí)行,由CLR轉(zhuǎn)換為計(jì)算機(jī)語(yǔ)言解釋給計(jì)算機(jī)
強(qiáng)類型系統(tǒng)
所有變量必須被指定類型,沒有強(qiáng)制類型轉(zhuǎn)化前,不允許兩種不同類型的變量相互操作
裝箱和拆箱
箱是將值類型轉(zhuǎn)換為引用類型,拆箱是將引用類型轉(zhuǎn)換為值類型
重載
同一個(gè)類中有兩個(gè)或多個(gè)名字相同但是參數(shù)不同的方法
5.CTS、CLS和CLR分別作何解釋?
http://www.survivalescaperooms.com/zagelover/articles/2741370.html
CTS通用類型系統(tǒng)(Common Type System)
描述了類型的定義和行為。
CLS通用語(yǔ)言規(guī)范(Common Language Specification)
是CTS的一個(gè)子集,它定義了希望編寫在.NET平臺(tái)上運(yùn)行的程序的語(yǔ)言所需符合的最小規(guī)范
CLR公共語(yǔ)言運(yùn)行庫(kù)(Common Language Runtime)
CLR是CTS的實(shí)現(xiàn),也就是說,CLR是應(yīng)用程序的執(zhí)行引擎和功能齊全的類庫(kù),該類庫(kù)嚴(yán)格按照CTS規(guī)范實(shí)現(xiàn)。
6.GC是什么
CLR垃圾回收機(jī)制,根據(jù)"代"自動(dòng)回收堆上不被引用的對(duì)象
To be continue...
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注