1. 請(qǐng)簡(jiǎn)述值類型與引用類型的區(qū)別
我是想簡(jiǎn)述下為什么第一個(gè)問(wèn)題總是這個(gè),因?yàn)樗谐鲱}的面試官都不走心的,
實(shí)際項(xiàng)目肯定是引用類型+值類型混用,難道你沒(méi)寫過(guò)? int currLevel =Game.Instance.LevelCount;
值類型包括:數(shù)值類型,結(jié)構(gòu)體,bool型,用戶定義的結(jié)構(gòu)體,枚舉,可空類型。
引用類型包括:數(shù)組,用戶定義的類、接口、委托,object,字符串,null類型,類。
2.C#中所有引用類型的基類是什么
C#基類Object 包名System
3.請(qǐng)簡(jiǎn)述ArrayList和List的主要區(qū)別
Unity3d游戲開(kāi)發(fā)過(guò)程中很少見(jiàn)ArrayList,都是用的List<>和[]多,
ArrayList這是老C#人才會(huì)用的變量,也可能是從JAVA借鑒過(guò)來(lái),JAVA有Hashset做數(shù)組變量,
哥一開(kāi)始學(xué)C#1.0對(duì)ArrayList的框架很不能理解,ArrayList繼承List覺(jué)得很多余的?
還有問(wèn)這個(gè)問(wèn)題的百度一查大把,真心沒(méi)幾個(gè)能從歷史,當(dāng)前流行項(xiàng)目,未來(lái)趨勢(shì)等各個(gè)方面分析出原因,不過(guò)分析出來(lái)也沒(méi)什么亂用,面試官出題的能不能別那么懶?
ArrayList 是一個(gè)數(shù)組,繼承實(shí)現(xiàn)了List基類,是比較傳統(tǒng)使用的程序數(shù)組變量
List是調(diào)用List,用了C#的泛型特性
4.請(qǐng)簡(jiǎn)述GC(垃圾回收)產(chǎn)生的原因,并描述如何避免?
下面是標(biāo)準(zhǔn)答案,其實(shí)我倒想問(wèn)問(wèn),你寫游戲用String??還用到StringBuilder??
CLR:公共運(yùn)行時(shí)環(huán)境,管理托管堆。
CTR:設(shè)置引用類型,值類型。
GC:只負(fù)責(zé)回收托管對(duì)象,不負(fù)責(zé)回收非托管對(duì)象。
避免:1)減少new產(chǎn)生對(duì)象的次數(shù)
2)使用公用的對(duì)象(靜態(tài)成員)
3)將String換為StringBuilder
5.請(qǐng)描述Interface與抽象類之間的不同
抽象類表示該類已經(jīng)有一些具體的實(shí)現(xiàn),而接口只是定義各方法,并沒(méi)有具提實(shí)現(xiàn),子類繼承抽象父類,可以只是繼承部分方法或直接引用父類的方法。類實(shí)現(xiàn)接口必須實(shí)現(xiàn)該接口所有方法
6.下列代碼在運(yùn)行中會(huì)產(chǎn)生幾個(gè)臨時(shí)對(duì)象?
先不論代碼書寫是否有錯(cuò),或者命名的,每個(gè)new都會(huì)產(chǎn)生臨時(shí)對(duì)象,()括號(hào)等同于new,那么應(yīng)該是6
*假如我問(wèn)面試官,這2年要如何優(yōu)化,他不看標(biāo)準(zhǔn)答案,能答出來(lái)嗎?(其實(shí)你的思路可能比他還清晰,因?yàn)樗ぷ鞫嗄?,幾年?lái)都不會(huì)見(jiàn)到這種代碼,那他為什么要出這個(gè)題?別為難面試官,人家從百度抄題目下來(lái)也是不容易的)
更多關(guān)于“unity培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。