很多朋友好奇Unity面试会问的问题,千锋老师就在这里给大家展示一些。
1. 请简述值类型与引用类型的区别
答:区别:
1)值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
2)值类型存取快,引用类型存取慢。
3)值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4)栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。
5)值类型继承自System.ValueType,引用类型继承自System.Object。
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与抽象类之间的不同 (待)
答:抽象类表示该类中可能已经有一些方法的具体定义,但接口就是公公只能定义各个方法的界面 ,不能具体的实现代码在成员方法中。
类是子类用来继承的,当父类已经有实际功能的方法时该方法在子类中可以不必实现,直接引用父类的方法,子类也可以重写该父类的方法。 实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。
8.请简述关键字Sealed用在类声明和函数声明时的作用
答:类声明时加Sealed可防止其他类继承此类,在方法中声明则可防止派生类重写此方法。
9.请简述private,public,protected,internal的区别
答: public:对任何类和成员都公开,无限制访问 private:仅对该类公开 protected:对该类和其派生类公开 internal:只能在包含该类的程序集中访问该类 protected internal:protected internal
当然来说,千锋老师手里有很多Unity面试会问的问题,但是你得来学啊(笑)~
课程定制与咨询:010-64707530 QQ:2645567689金老师