C#篇面試

1.為什么訪問椇途矗空間比堆快盾饮?
棧直接從地址讀取數(shù)據(jù)到寄存器采桃,放到目標(biāo)地址
對將分配的地址放到寄存器,取出這個(gè)地址的值丐谋,再放到目的地址

2.值類型與引用類型區(qū)別
值類型是像int芍碧、float等基本數(shù)據(jù)類型,
引用類型是像class号俐、string自定義的數(shù)據(jù)類型
如果通過參數(shù)傳遞泌豆,值類型傳遞的是一個(gè)拷貝,引用類型傳遞的是地址
修改參數(shù)值吏饿,原有值類型不受影響踪危,引用類型會(huì)受影響
值類型是在棧內(nèi)蔬浙,棧的內(nèi)存是自動(dòng)釋放的
引用類型是在堆內(nèi),堆的內(nèi)存是.NET中由GC管理的
值類型存取快贞远,引用類型存取慢

3.值類型和引用類型的基類
值類型繼承與System.ValueType畴博,引用類型繼承于System.Object

4.new一個(gè)對象經(jīng)歷什么
聲明一個(gè)引用
使用new關(guān)鍵字創(chuàng)建對象,并調(diào)用構(gòu)造函數(shù)對其初始化
將引用指向類的對象

5.數(shù)據(jù)長度
引用類型的字段蓝仲,占一個(gè)指針的長度
(32位系統(tǒng)的4個(gè)俱病,64位是8個(gè),)
int16 32 64袱结,分別占:16 32 64位
8位=1字節(jié)亮隙,也就是2字節(jié) 4字節(jié)8字節(jié)
bool和byte和char是1,short是2垢夹,int和float是4溢吻,long是8

6.GC
垃圾回收機(jī)制,對堆內(nèi)內(nèi)存進(jìn)行管理
C#代碼所占用的內(nèi)存又稱mono內(nèi)存
unity通過mono來實(shí)現(xiàn)跨平臺(tái)并解析運(yùn)行C#代碼
mono內(nèi)存分為兩部分果元,一部分是已用內(nèi)存一部分是堆內(nèi)存促王,兩者的差就是空閑內(nèi)存
當(dāng)mono需要分配內(nèi)存的時(shí)候,會(huì)先看空閑內(nèi)存是否足夠
如果夠直接在空閑內(nèi)存中分配
如果不夠就會(huì)進(jìn)行一次GC來釋放更多的空間內(nèi)存
如果GC后仍不夠而晒,就會(huì)向操作系統(tǒng)申請內(nèi)存蝇狼,擴(kuò)充堆的內(nèi)存
或者直接調(diào)用GC.Collect()

7.如何減少GC
減少new對象的次數(shù)
String換成StringBuilder

8.接口和抽象類的區(qū)別
抽象類是abstract,接口是interface
抽象類中可能有方法的具體定義
接口只能定義各個(gè)方法的簽名倡怎,不能實(shí)現(xiàn)具體的代碼
抽象類是抽象于某個(gè)對象的题翰,比如抽象人,抽象鳥
接口是抽象于某個(gè)能力的诈胜,比如能吃飯,能飛翔
抽象類只能單繼承冯事,接口可以多繼承
實(shí)現(xiàn)抽象類可以實(shí)現(xiàn)或者不實(shí)現(xiàn)某個(gè)方法
實(shí)現(xiàn)接口必須實(shí)現(xiàn)中的所有方法

9.權(quán)限關(guān)鍵字
private:只有本類訪問
public:所有類都可訪問
protected:本類或者子類訪問
internal:本項(xiàng)目內(nèi)訪問

10.Mono和.NET的關(guān)系
.Net只能在windows下運(yùn)行
mono可以實(shí)現(xiàn)跨平臺(tái)的.Net

11.反射
得到程序集中的屬性或者方法
Assembly.Load
assembly.GetTypes()
Activator.CreateInstance(type)
type.GetMethod()

12.struct和class區(qū)別
使用上沒區(qū)別焦匈,都可以定義字段屬性方法構(gòu)造函數(shù),可以new
struct不支持繼承
struct是值類型

13.String
是一個(gè)特殊的對象昵仅,一旦賦值就不可改變
使用=或者+都會(huì)創(chuàng)建一個(gè)新的字符串對象缓熟,也就是分配新的內(nèi)存空間(但是系統(tǒng)內(nèi)部會(huì)優(yōu)化,享元模式)
"str"+9會(huì)發(fā)生裝箱操作
"str"+9.ToString()通過非托管方法摔笤,直接操作內(nèi)存完成int到string的轉(zhuǎn)換

14.裝箱與拆箱
把值類型轉(zhuǎn)換為object引用類型會(huì)發(fā)生裝箱够滑,反之則為拆箱

15.裝箱會(huì)帶來性能消耗,經(jīng)歷了什么吕世?
為值類型在托管堆中分配內(nèi)存彰触,
將值類型的值復(fù)制到新分配的堆內(nèi)存中
返回已經(jīng)成為引用類型的對象的地址

16.StringBuilder
預(yù)先以非托管的方式分配內(nèi)存
大量拼接字符串,可以優(yōu)化性能

17.c#編譯過程
c#代碼命辖,經(jīng)過C#編譯器况毅,變成程序集dll
程序集包括數(shù)據(jù)源和IL代碼分蓖,再經(jīng)過JIT編譯器,變成CPU指令

18.==和Equals
CLR將相等分為兩種:
值相等:比較兩個(gè)變量所包含的數(shù)值是否相等
引用相等:比較兩個(gè)變量引用是否是內(nèi)存中的同一個(gè)對象
在C#中尔许,操作符==和方法Equals都是
如果是值類型就比較值么鹤,如果是引用類型就比較地址
Object.ReferenceEquals,是專門比較引用的

19.委托和事件的區(qū)別
委托是一個(gè)類味廊,維護(hù)者一個(gè)字段蒸甜,指向一個(gè)方法,可以實(shí)例化
編譯成IL代碼后余佛,可以看到是一個(gè)類柠新,里面還有Invoke方法
事件是一個(gè)委托類型的變量

20.委托的閉包
List<Action> lists = new List<Action>();
for (int i = 0; i < 5; i++)
{
Action t = () =>
{
Console.WriteLine(i.ToString());
};
lists.Add(t);
}
foreach (var item in lists)
{
item.Invoke();
}

21.Dictionary內(nèi)部實(shí)現(xiàn)
是一個(gè)key-value鍵值對的形式存儲(chǔ)數(shù)據(jù),查找的復(fù)雜度在O(1)
內(nèi)部原理:
Hash算法
沖突解決方法衙熔,采用next

22.Dictionary和Hashtable區(qū)別
Dictionary支持泛型登颓,hashtable不支持泛型,會(huì)進(jìn)行裝箱拆箱操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末红氯,一起剝皮案震驚了整個(gè)濱河市框咙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痢甘,老刑警劉巖喇嘱,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異塞栅,居然都是意外死亡者铜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門放椰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作烟,“玉大人,你說我怎么就攤上這事砾医∧昧茫” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵如蚜,是天一觀的道長压恒。 經(jīng)常有香客問我,道長错邦,這世上最難降的妖魔是什么探赫? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮撬呢,結(jié)果婚禮上伦吠,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好讨勤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布箭跳。 她就那樣靜靜地躺著,像睡著了一般潭千。 火紅的嫁衣襯著肌膚如雪谱姓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天刨晴,我揣著相機(jī)與錄音屉来,去河邊找鬼。 笑死狈癞,一個(gè)胖子當(dāng)著我的面吹牛茄靠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蝶桶,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼慨绳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了真竖?” 一聲冷哼從身側(cè)響起脐雪,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恢共,沒想到半個(gè)月后战秋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡讨韭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年脂信,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片透硝。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狰闪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出濒生,到底是詐尸還是另有隱情尝哆,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布甜攀,位于F島的核電站,受9級特大地震影響琐馆,放射性物質(zhì)發(fā)生泄漏规阀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一瘦麸、第九天 我趴在偏房一處隱蔽的房頂上張望谁撼。 院中可真熱鬧,春花似錦、人聲如沸厉碟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箍鼓。三九已至崭参,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間款咖,已是汗流浹背何暮。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铐殃,地道東北人海洼。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像富腊,于是被迫代替她去往敵國和親坏逢。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容