今天这套笔试题感受作得通常。html
随后是二对一的技术面试,但涉及的技术细节相对较少,不少其它的是对曾经工做、项目经历的询问。面试
而后说今天先到这里。让我等通知。数据库
我还特地问了一下,通知大概要多久,他们说这个得看hr,他们仅仅是给hr传达他们的信息。安全
当时就认为差点儿相同挂了、、、多线程
1. 请简述值类型与引用类型的差异app
答:ide
可參考http://www.cnblogs.com/JimmyZhang/archive/2008/01/31/1059383.html函数
2.C#中所有引用类型的基类是什么字体
答:ui
引用类型的基类是System.Object 值类型的基类是System.ValueType
同一时候,值类型也隐式继承自System.Object
3.请简述ArrayList和List<Int>的主要差异
答:
ArrayList存在不安全类型‘(ArrayList会把所有插入当中的数据都当作Object来处理)
装箱拆箱的操做(费时)
4.请简述GC(垃圾回收)产生的缘由,并描写叙述怎样避免
答
:GC回收堆上的内存
避免:1)下降new产生对象的次数
2)使用公用的对象(静态成员)
3)将String换为StringBuilder
5.请描写叙述Interface与抽象类之间的不一样
答:
參考http://www.cnblogs.com/seapub/archive/2012/08/08/2628433.html
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.请简述keywordSealed用在类声明和函数声明时的做用
答:
类声明时可防止其它类继承此类。在方法中声明则可防止派生类重写此方法。
9.请简述private。public。protected。internal的差异
答:
public:对不论什么类和成员都公开。无限制訪问
private:仅对该类公开
protected:对该类和其派生类公开
internal:仅仅能在包括该类的程序集中訪问该类
protected internal:protected + internal
10.反射的实现原理?
答:审查元数据并收集关于它的类型信息的能力。
參考http://blog.163.com/xuanmingzhiyou@yeah/blog/static/1424776762011612115124188/
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.
12.简述Unity3D支持的做为脚本的语言的名称
答:Unity的脚本语言基于Mono的.Net平台上执行,可以使用.NET库,这也为XML、数据库、正則表達式等问题提供了很是好的解决方式。
Unity里的脚本都会通过编译。他们的执行速度也很是快。这三种语言实际上的功能和执行速度是同样的,差异主要体现在语言特性上。
JavaScript:和网页中常用的JavaScript不同,它编译后的执行速度很是快。语法方面也会有很多差异。
C#
Boo:可以看作是Python语言的变种。又糅合了Ruby和C#的特性。它是静态类型语言
13.Unity3D是否支持写成多线程程序?假设支持的话需要注意什么?
答:參考http://www.unity防禁manual.com/3821.html
仅能从主线程中訪问Unity3D的组件,对象和Unity3D系统调用
14.Unity3D的协程和C#线程之间的差异是什么?
答:http://blog.csdn.net/kongbu0622/article/details/8775037
多线程程序同一时候执行多个线程 ,而在任一指定时刻仅仅有一个协程在执行。并且这个正在执行的协同程序仅仅在必要时才被挂起。
除主线程以外的线程没法訪问Unity3D的对象、组件、方法。
15.U3D中用于记录节点空间几何信息的组件名称,及其父类名称
答:Transform 父类是 Component
16.简述四元数的做用。四元数对欧拉角的长处?
答:四元数用于表示旋转
相对欧拉角的长处:
1)能进行增量旋转
2)避免万向锁
3)给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)
17.向量的点乘、叉乘以及归一化的意义?
1)点乘描写叙述了两个向量的类似程度,结果越大两向量越类似。还可表示投影
2)叉乘获得的向量垂直于原来的两个向量
3)标准化向量:用在仅仅关系方向,不关心大小的时候
18.矩阵相乘的意义及注意点
用于表示线性变换:旋转、缩放、投影、平移、仿射
注意矩阵的蠕变:偏差的积累
19.为什么你们都在移动设备上寻求U3D原生GUI的替代方案
不美观,OnGUI很是耗费时间,使用不方便
20.请简述怎样在不一样分辨率下保持UI的一致性
原生GUI http://unity3d.9ria.com/?p=2587
NGUI http://blog.csdn.net/mfc11/article/details/17681429
21.为何dynamic font在unicode环境下优于static font
Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。
使用动态字体时,Unity将不会预先生成一个与所有字体的字符纹理。当需要支持亚洲语言或者较大的字体的时候,若使用正常纹理,则字体的纹理将很大。
22.Render的做用?描写叙述MeshRender和SkinnedMeshRender的关系与不一样
A renderer is what makes an object appear on the screen。
23.简述SkinnedMesh的实现原理
http://blog.csdn.net/n5/article/details/3105872
24.在场景中放置多个Camera并同一时候处于活动状态会发生什么
答:
游戏界面可以看到很是多摄像机的混合
25.Prefab的做用?怎样在移动环境的设备下恰当地使用它?
答:
Prefab在实例化的时候用到,主要用于经常会用到的物体,属性方便改动
http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html
26.怎样销毁一个UnityEngine.Object及其子类
答:
Destory
27.为何Unity3D中会发生在组件上出现数据丢失的状况?
答:
组件上绑定的对象被删除了
28.怎样安全的在不一样project间安全地迁移asset数据?三种
答:
将Assets文件夹和Library文件夹一块儿迁移
导出包
用unity自带的assets Server功能
29.MeshCollider和其它Collider的一个主要不一样点?
答:Convex?
30.当一个细小的快速物体撞向还有一个较大的物体时,会出现什么状况?怎样避免?
穿透(碰撞检測失败)
http://forum.unity3d.com/threads/3353-collision-detection-at-high-speed
31.OnEnable、Awake、Start执行时的发生顺序?哪些可能在同一个对象周期中重复的发生?
答
Awake -》OnEnable-》Start
OnEnable在同一周期中可以重复地发生
http://answers.unity3d.com/questions/217941/onenable-awake-start-order.html
32.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及这一对回调函数的意义?
答
当物体是否可见切换之时。
可以用于仅仅需要在物体可见时才进行的计算。
33.Unity3D怎样获知场景中需要载入的数据?
题目是获取的意思?
Resource.Load
AssetBundle
34.MeshRender中material和sharedmaterial的差异?
改动sharedMaterial将改变所有物体使用这个材质的外观。并且也改变储存在project里的材质设置。
不推荐改动由sharedMaterial返回的材质。假设你想改动渲染器的材质。使用material替代。