Unity3D工程師高頻面試題,向著高薪進發(fā)
來源:
奇酷教育 發(fā)表于:
想要應聘一個高薪職位,第一關(guān)就是面試。那對于游戲開發(fā)的小伙伴來說,Unity3D游戲開發(fā)面試時要注意哪些問題呢?下面奇酷教育就總結(jié)了
想要應聘一個高薪職位,第一關(guān)就是面試。那對于游戲開發(fā)的小伙伴來說,
Unity3D
游戲開發(fā)面試時要注意哪些問題呢?下面奇酷教育就總結(jié)了一些面試高頻題目,相信可以為大家?guī)硪恍椭?
請簡述值類型與引用類型的區(qū)別
答:區(qū)別:
值類型存儲在內(nèi)存棧中,引用類型數(shù)據(jù)存儲在內(nèi)存堆中,而內(nèi)存單元中存放的是堆中存放的地址。
值類型存取快,引用類型存取慢。
值類型表示實際數(shù)據(jù),引用類型表示指向存儲在內(nèi)存堆中的數(shù)據(jù)的指針和引用。
棧的內(nèi)存是自動釋放的,堆內(nèi)存是.NET中會由GC來自動釋放。
值類型繼承自System.ValueType,引用類型繼承自System.Object。
C#中所有引用類型的基類是什么
答:引用類型的基類是System.Object 值類型的基類是System.ValueType,同時,值類型也隱式繼承自
請簡述ArrayList和List的主要區(qū)別
答:ArrayList存在不安全類型,(ArrayList會把所有插入其中的數(shù)據(jù)都當做Object來處理)裝箱拆箱的操作(費時),List是接口,ArrayList是一個實現(xiàn)了該接口的類,可以被實例化。
請簡述GC(垃圾回收)產(chǎn)生的原因,并描述如何避免?
答:GC回收堆上的內(nèi)存,避免:
?。p少new產(chǎn)生對象的次數(shù)
?。┦褂霉玫膶ο螅o態(tài)成員)
?。tring換為
請描述Interface與抽象類之間的不同
答:抽象類表示該類中可能已經(jīng)有一些方法的具體定義,但接口就是只能定義各個方法的界面 ,不能具體的實現(xiàn)代碼在成員方法中。
類是子類用來繼承的,當父類已經(jīng)有實際功能的方法時該方法在子類中可以不必實現(xiàn),直接引用父類的方法,子類也可以重寫該父類的方法。
實現(xiàn)接口的時候必須要實現(xiàn)接口中所有的方法,不能遺漏任何一個。
下列代碼在運行中會產(chǎn)生幾個臨時對象?
答:其實在C#中第一行是會出錯的(Java中倒是可行)。應該這樣初始化:
下列代碼在運行中會發(fā)生什么問題?如何避免?
答:會產(chǎn)生運行時錯誤,因為foreach是只讀的。不能一邊遍歷一邊修改。
請簡述關(guān)鍵字Sealed用在類聲明和函數(shù)聲明時的作用
答:類聲明時可防止其他類繼承此類,在方法中聲明則可防止派生類重寫此方法。
請簡述private,public,protected,internal的區(qū)別
答:
對任何類和成員都公開,無限制訪問
僅對該類公開
對該類和其派生類公開
只能在包含該類的程序集中訪問該類
簡述unity3d支持的作為腳本的語言的名稱
答:Unity的腳本語言基于Mono的.Net平臺上運行,可以使用.NET庫,這也為XML、數(shù)據(jù)庫、正則表達式等問題提供了很好的解決方案。
里的腳本都會經(jīng)過編譯,他們的運行速度也很快。這三種語言實際上的功能和運行速度是一樣的,區(qū)別主要體現(xiàn)在語言特性上。
和網(wǎng)頁中常用的JavaScript不一樣,它編譯后的運行速度很快,語法方面也會有不少區(qū)別。
類似于Java編程語言的變異型語言;
可以看做是Python語言的變種,又糅合了Ruby和C#的特性,它是靜態(tài)類型語言
Unity3D是否支持寫成多線程程序?如果支持的話需要注意什么?
答:
僅能從主線程中訪問Unity3D的組件,對象和Unity3D系統(tǒng)調(diào)用支持;如果同時你要處理很多事情或者與Unity的對象互動小可以用thread,否則使用coroutine。
注意:C#中有l(wèi)ock這個關(guān)鍵字,以確保只有一個線程可以在特定時間內(nèi)訪問特定的對象
U3D中用于記錄節(jié)點空間幾何信息的組件名稱,及其父類名稱
答:Transform 父類是
矩陣相乘的意義及注意點
答:用于表示線性變換:旋轉(zhuǎn)、縮放、投影、平移、仿射注意矩陣的蠕變:誤差的積累
為何大家都在移動設備上尋求U3D原生GUI的替代方案
答:不美觀,OnGUI很耗費時間,使用不方便
為什么Unity3D中會發(fā)生在組件上出現(xiàn)數(shù)據(jù)丟失的情況?
答:組件上綁定的對象被刪除了