unity面试常用问题,自己总结的unity高频面试题
unity面试常用问题,自己总结的unity高频面试题3.栈顶的地址和栈的最大容量是系统预先规定好的,如果申请的空间超过栈的剩余空间时,会报overflow溢出的错误;而堆是不连续的内存区域,是由系统用链表来存储的空闲内存地址的,堆的大小跟计算机系统中有效的虚拟内存。2.堆区(heap):一般由程序员分配释放,会产生gc回收。5.接口不能包含字段,抽象类可以有字段。6.实现接口的时候必须要实现接口中的所有的方法,不能遗漏任何一个。1.栈区(stack):由编译器自动分配释放。
一.接口和抽象类的区别:1.抽象类可以有构造方法,接口中不能有构造方法;
2.抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能public static final类型,并且默认即为public static final类型
3.一个类可以实现多个接口,但只能继承一个抽象类;
4.抽象类可以包含静态方法,接口中不能包含静态方法
5.接口不能包含字段,抽象类可以有字段。
6.实现接口的时候必须要实现接口中的所有的方法,不能遗漏任何一个。
二:堆和栈的区别:1.栈区(stack):由编译器自动分配释放。
2.堆区(heap):一般由程序员分配释放,会产生gc回收。
3.栈顶的地址和栈的最大容量是系统预先规定好的,如果申请的空间超过栈的剩余空间时,会报overflow溢出的错误;而堆是不连续的内存区域,是由系统用链表来存储的空闲内存地址的,堆的大小跟计算机系统中有效的虚拟内存。
三:四元数和欧拉角的区别:欧拉角的任意一个角度可以有很多种表示,会造成万向锁的现象,而四元数只有一种表示;例如:使用欧拉角的时候0°和360°以及-360°都是一样的
四:向量的点乘、叉乘以及归一化的意义?答:
1)点乘描述了两个向量的相似程度,结果越大两向量越相似,还可表示投影;角度越小,cos的值越大
2)叉乘得到的向量垂直于原来的两个向量所形成的平面
3)标准化向量:用在只关系方向,不关心大小的时候
五:重载和override的区别:Overload:重载就是在同一个类中,方法名相同,参数列表不同。参数列表不同包括:参数的个数不同,参数类型不同等。
override:说的是两个类继承 子类重写父类的方法,在调用的时候,子类的方法会覆盖父类的方法,也就是会调用子类的方法。在父类中的方法必须有修饰符virtual,而在子类的方法中必须指明override。(方法名称必须相同,参数也要相同)
六:如何优化内存:1.精灵压缩
2.使用ObjectPool对象池将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;
3.释放AssetBundle占用的资源;
4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;
5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。
6.动态批处理,静态批处理;
7.遮挡剔除处理;