奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現在所在的位置:首頁 >學員就業 > 就業寶典 > 奇酷教育帶你挑戰高難度Unity3D試題,為面試打牢基礎(一)

奇酷教育帶你挑戰高難度Unity3D試題,為面試打牢基礎(一)

來源:奇酷教育 發表于:

想要得到高薪職位,第一關就是面試。那對于Unity3D開發的小伙伴來說,面試時往往更注重對技術方面的考察,今天奇酷教育總結了一些面試時的技

想要得到高薪職位,第一關就是面試。那對于Unity3D開發的小伙伴來說,面試時往往更注重對技術方面的考察,今天奇酷教育總結了一些面試時的技術性高頻題目,相信可以為大家帶來一些幫助。
1. 請簡述值類型與引用類型的區別
 
答:區別:
1.值類型存儲在內存棧中,引用類型數據存儲在內存堆中,而內存單元中存放的是堆中存放的地址。
2.值類型存取快,引用類型存取慢。
3.值類型表示實際數據,引用類型表示指向存儲在內存堆中的數據的指針和引用。
4.棧的內存是自動釋放的,堆內存是.NET中會由GC來自動釋放。
5.值類型繼承自System.ValueType,引用類型繼承自System.Object。
 
2.C#中所有引用類型的基類是什么
 
答:引用類型的基類是System.Object 值類型的基類是System.ValueType
 
同時,值類型也隱式繼承自System.Object
 
 
3.請簡述ArrayList和List<Int>的主要區別
 
答:ArrayList存在不安全類型‘(ArrayList會把所有插入其中的數據都當做Object來處理)
 
裝箱拆箱的操作(費時)
 
List是接口,ArrayList是一個實現了該接口的類,可以被實例化。
 
 
4.請簡述GC(垃圾回收)產生的原因,并描述如何避免?
 
答:GC回收堆上的內存
 
避免:1)減少new產生對象的次數
 
2)使用公用的對象(靜態成員)
 
3)將String換為StringBuilder
 
5.請描述Interface與抽象類之間的不同
 
答:抽象類表示該類中可能已經有一些方法的具體定義,但接口就是公公只能定義各個方法的界面 ,不能具體的實現代碼在成員方法中。
類是子類用來繼承的,當父類已經有實際功能的方法時該方法在子類中可以不必實現,直接引用父類的方法,子類也可以重寫該父類的方法。
實現接口的時候必須要實現接口中所有的方法,不能遺漏任何一個。
 
6.下列代碼在運行中會產生幾個臨時對象?
string a = new string("abc");
            a = (a.ToUpper() + "123").Substring(0, 2);   
復制代碼
答:其實在C#中第一行是會出錯的(Java中倒是可行)。應該這樣初始化:
string b = new string(new char[]{'a','b','c'});
復制代碼
 
7.下列代碼在運行中會發生什么問題?如何避免?
List<int> ls = new List<int>(new int[] { 1, 2, 3, 4, 5 });
            foreach (int item in ls)
            {
                Console.WriteLine(item * item);
                ls.Remove(item);
            }   
復制代碼
答:會產生運行時錯誤,因為foreach是只讀的。不能一邊遍歷一邊修改。
 
8.請簡述關鍵字Sealed用在類聲明和函數聲明時的作用
 
答:類聲明時可防止其他類繼承此類,在方法中聲明則可防止派生類重寫此方法。
 
 
9.請簡述private,public,protected,internal的區別
 
答:
 
public:對任何類和成員都公開,無限制訪問
 
private:僅對該類公開
 
protected:對該類和其派生類公開
 
internal:只能在包含該類的程序集中訪問該類
 
protected internal:protected + internal
 
10.反射的實現原理?
 
答:審查元數據并收集關于它的類型信息的能力。
反射個人認為,就是得到程序集中的屬性和方法。
實現步驟:
1,導入using System.Reflection;
2,Assembly.Load("程序集")加載程序集,返回類型是一個Assembly
3,   foreach (Type type in assembly.GetTypes())
            {
                string t = type.Name;
            }
   得到程序集中所有類的名稱
4,Type type = assembly.GetType("程序集.類名");獲取當前類的類型
5,Activator.CreateInstance(type); 創建此類型實例
6,MethodInfo mInfo = type.GetMethod("方法名");獲取當前方法
7,mInfo.Invoke(null,方法參數);
 
11. .Net與Mono的關系?
 
答:Mono官網主頁
 
Mono is a software platform designed to allow developers to easily create 
cross platform applications. Sponsored by Xamarin, Mono is an open source 
implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
 
mono是.net的一個開源跨平臺工具,就類似java虛擬機,java本身不是跨平臺語言,但運行在虛擬機上就能夠實現了跨平臺。.net只能在windows下運行,mono可以實現跨平臺跑,
可以運行于linux,Unix,Mac OS等。
 
 
12.簡述Unity3D支持的作為腳本的語言的名稱
 
答:Unity的腳本語言基于Mono的.Net平臺上運行,可以使用.NET庫,這也為XML、數據庫、正則表達式等問題提供了很好的解決方案。
 
Unity里的腳本都會經過編譯,他們的運行速度也很快。這三種語言實際上的功能和運行速度是一樣的,區別主要體現在語言特性上。
 
JavaScript:和網頁中常用的JavaScript不一樣,它編譯后的運行速度很快,語法方面也會有不少區別。
 
C#
 
Boo:可以看做是Python語言的變種,又糅合了Ruby和C#的特性,它是靜態類型語言
 
 
13.Unity3D是否支持寫成多線程程序?如果支持的話需要注意什么?
 
答:參考http://www.unitymanual.com/3821.html
 
僅能從主線程中訪問Unity3D的組件,對象和Unity3D系統調用
 
支持:如果同時你要處理很多事情或者與Unity的對象互動小可以用thread,否則使用coroutine。
 
注意:C#中有lock這個關鍵字,以確保只有一個線程可以在特定時間內訪問特定的對象
 
 
14.Unity3D的協程和C#線程之間的區別是什么?
 
答:多線程程序同時運行多個線程 ,而在任一指定時刻只有一個協程在運行,并且這個正在運行的協同程序只在必要時才被掛起。
 
除主線程之外的線程無法訪問Unity3D的對象、組件、方法。
 
Unity3d沒有多線程的概念,不過unity也給我們提供了StartCoroutine(協同程序)和LoadLevelAsync(異步加載關卡)后臺加載場景的方法。 StartCoroutine為什么叫協同程序呢,所謂協同,就是當你在StartCoroutine的函數體里處理一段代碼時,利用yield語句等待執行結果,這期間不影響主程序的繼續執行,可以協同工作。而LoadLevelAsync則允許你在后臺加載新資源和場景,所以再利用協同,你就可以前臺用loading條或動畫提示玩家游戲未卡死,同時后臺協同處理加載的事宜asynchronous[e ?? s ?? kr ? n ? s] .synchronous同步。 
 
 
15.U3D中用于記錄節點空間幾何信息的組件名稱,及其父類名稱
 
答:Transform 父類是 Component
 
 
16.簡述四元數的作用,四元數對歐拉角的優點?
 
答:四元數用于表示旋轉
 
相對歐拉角的優點:
 
1)能進行增量旋轉
 
2)避免萬向鎖
 
3)給定方位的表達方式有兩種,互為負(歐拉角有無數種表達方式)
 
 
17.向量的點乘、叉乘以及歸一化的意義?
 
1)點乘描述了兩個向量的相似程度,結果越大兩向量越相似,還可表示投影
 
2)叉乘得到的向量垂直于原來的兩個向量
 
3)標準化向量:用在只關系方向,不關心大小的時候
 
 
18.矩陣相乘的意義及注意點
 
用于表示線性變換:旋轉、縮放、投影、平移、仿射
 
注意矩陣的蠕變:誤差的積累
 
 
19.為何大家都在移動設備上尋求U3D原生GUI的替代方案
 
不美觀,OnGUI很耗費時間,使用不方便 
 
主站蜘蛛池模板: 缝纫客| 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 江西高职单独招生-江西单招考试-江西高职单招网 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 活性炭-果壳木质煤质柱状粉状蜂窝活性炭厂家价格多少钱 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 智能气瓶柜(大型气瓶储存柜)百科 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 苏州西装定制-西服定制厂家-职业装定制厂家-尺品服饰西装定做公司 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 |