本人整理【转载】的一些unity3d高频面试题目,希望可以帮助到大家。 限于个人水平有限,只附上一些参考答案。
=======================================
重要的信息放前面:
数据结构和算法很重要,图形学也很重要!
大的游戏公司很看重个人基础、综合能力;
小公司看你实际工作能力,看你的Demo。
1、请简述值类型与引用类型的区别
答:区别:
1、值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
2、值类型存取快,引用类型存取慢。
3、值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4、栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。
5、值类型继承自System.ValueType,引用类型继承自System.Object。可参考:
http://www.cnblogs.com/JimmyZhang/archive/2008/01/31/1059383.html
2、C#中所有引用类型的基类是什么
答:引用类型的基类是System.Object值类型的基类是System.ValueType,同时,值类型也隐式继承自System.Object
3、请简述ArrayList和List的主要区别
答:ArrayList存在不安全类型,(ArrayList会把所有插入其中的数据都当做Object来处理)装箱拆箱的操作(费时),List是接口,ArrayList是一个实现了该接口的类,可以被实例化。
4、请简述GC(垃圾回收)产生的原因,并描述如何避免?
答:GC回收堆上的内存,避免:
1)减少new产生对象的次数
2)使用公用的对象(静态成员)
3)将String换为StringBuilder
5、请描述Interface与抽象类之间的不同
答:抽象类表示该类中可能已经有一些方法的具体定义,但接口就是只能定义各个方法的界面 ,不能具体的实现代码在成员方法中。
类是子类用来继承的,当父类已经有实际功能的方法时该方法在子类中可以不必实现,直接引用父类的方法,子类也可以重写该父类的方法。
实