手游客户端开发面试题(含详细实战答案).docxVIP

  • 1
  • 0
  • 约4.83千字
  • 约 7页
  • 2026-08-08 发布于河北
  • 举报

手游客户端开发面试题(含详细实战答案).docx

手游客户端开发面试题(含详细实战答案)

一、C#基础核心面试题(手游高频)

1、值类型和引用类型的区别?手游开发中常见使用场景?

参考答案:

核心区别就两点:内存存储位置、赋值逻辑。

值类型存在栈内存,赋值是完整拷贝一份数据,两个变量完全独立,互不影响;常见的有int、float、bool、struct、枚举。

引用类型存在堆内存,栈里只存内存地址,赋值是拷贝地址,多个变量指向同一个堆对象,改一个全变;常见的有class、string、数组、List、Dictionary。

手游实战场景:

1)游戏坐标、向量、属性配置用struct(值类型),避免堆内存频繁分配产生GC;

2)角色、道具、技能这类复杂对象用class(引用类型),全局多处引用同一个对象,节省内存;

3)频繁修改的数值尽量不用class,防止无意间篡改全局数据。

2、什么是GC?手游GC卡顿的主要原因?怎么规避?

参考答案:

GC是垃圾回收,C#自动清理堆内存中没有引用的对象,但是回收过程会阻塞主线程,这是手游掉帧、卡顿的核心原因。

手游常见GC来源:

1)Update、FixedUpdate每帧new对象(newVector3、newList、字符串拼接);

2)频繁装箱拆箱(值类型转object、字典key/value用值类型装箱);

3)字符串频繁拼接(string不可变,每次拼接都会新建对象);

4)

文档评论(0)

1亿VIP精品文档

相关文档