很多朋友好奇Unity面試會問的問題,千鋒老師就在這里給大家展示一些。
1. 請簡述值類型與引用類型的區(qū)別
答:區(qū)別:
1)值類型存儲在內(nèi)存棧中,引用類型數(shù)據(jù)存儲在內(nèi)存堆中,而內(nèi)存單元中存放的是堆中存放的地址。
2)值類型存取快,引用類型存取慢。
3)值類型表示實(shí)際數(shù)據(jù),引用類型表示指向存儲在內(nèi)存堆中的數(shù)據(jù)的指針和引用。
4)棧的內(nèi)存是自動釋放的,堆內(nèi)存是.NET中會由GC來自動釋放。
5)值類型繼承自System.ValueType,引用類型繼承自System.Object。
2.C#中所有引用類型的基類是什么
答:引用類型的基類是System.Object 值類型的基類是System.ValueType 同時,值類型也隱式繼承自System.Object
3.請簡述ArrayList和List的主要區(qū)別
答:ArrayList存在不安全類型‘(ArrayList會把所有插入其中的數(shù)據(jù)都當(dāng)做Object來處理) 裝箱拆箱的操作(費(fèi)時)
List是接口,ArrayList是一個實(shí)現(xiàn)了該接口的類,可以被實(shí)例化。
4.請簡述GC(垃圾回收)產(chǎn)生的原因,并描述如何避免?
答:
產(chǎn)生原因:
GC回收堆上的內(nèi)存
避免:
1)減少new產(chǎn)生對象的次數(shù)
2)使用公用的對象(靜態(tài)成員)
3)將String換為StringBuilder
5.請描述Interface與抽象類之間的不同 (待)
答:抽象類表示該類中可能已經(jīng)有一些方法的具體定義,但接口就是公公只能定義各個方法的界面 ,不能具體的實(shí)現(xiàn)代碼在成員方法中。
類是子類用來繼承的,當(dāng)父類已經(jīng)有實(shí)際功能的方法時該方法在子類中可以不必實(shí)現(xiàn),直接引用父類的方法,子類也可以重寫該父類的方法。 實(shí)現(xiàn)接口的時候必須要實(shí)現(xiàn)接口中所有的方法,不能遺漏任何一個。
8.請簡述關(guān)鍵字Sealed用在類聲明和函數(shù)聲明時的作用
答:類聲明時加Sealed可防止其他類繼承此類,在方法中聲明則可防止派生類重寫此方法。
9.請簡述private,public,protected,internal的區(qū)別
答: public:對任何類和成員都公開,無限制訪問 private:僅對該類公開 protected:對該類和其派生類公開 internal:只能在包含該類的程序集中訪問該類 protected internal:protected internal
當(dāng)然來說,千鋒老師手里有很多Unity面試會問的問題,但是你得來學(xué)?。ㄐΓ﹡
課程定制與咨詢:010-64707530 QQ:2645567689金老師