写在前面
下面分享一下BAT及美团、头条、滴滴、小米、网易等各大公司的各类面试题
最新面试题 https://v2ee.cn/
有需要的小伙伴拿走~
面经
- 1.看你简历里面写做过一些小游戏,那么请问如果让你参与研发一款爆款的游戏,你觉得哪些地方会比较有挑战性呢?
从服务器的压力,游戏的性能要求,画面渲染等ji方面讲了游戏的难点。
- 2.既然你说到了既然你说到了游戏性能,那问一下游戏的性能能从哪些地方优化?
从代码和渲染两方面进行了回答,即CPU和GPU
- 3.算法课上过吧,我们来做个小题目
手撕了二分查找和堆排序
- 4.怎么算出二叉树的深度?
之前没做过,临时想按照层序遍历来计算
- 5.了解平衡二叉树吗?
不了解
- 3.extern C知道吗?有什么作用?
把代码块按照C语言的标准进行编译
- 4.你说到了编译,那你知道C语言的编译原理嘛?和C++有什么区别呢?
学校没教过…囧
-
5.那我不问编译原理了,问问网络、操作系统吧
-
6.死锁的四个条件?
说了其中的两个,实在是编不出了
- 7.如何避免死锁?
通过加锁解锁,或者不使用多线程,游戏开发的话unity也不推荐我们使用多线程
- 8.说到协程,知道协程的原理吗?底层是怎么实现的?
协程本质上也还是单线程,不过它是非阻塞的,我一般在延时调用的时候用到(其实底层怎么实现确实不太了解)
- 9.为什么unity中很少用多线程?多线程和协程都是非阻塞的,两者的优劣?
多线程会对资源频繁进行加锁,可能会影响效率。(回答的不太对,面试官也没直接否认,实际上是因为因为大多数游戏引擎是主循环结构, 逻辑更新和画面更新的时间点要求有确定性, 如果在逻辑更新和画面更新中引入多线程, 就需要做同步而这加大了游戏的开发难度)
- 9.讲讲unity的内存分配机制?
从引擎和C#两个方面进行了回答。
- 10.说到死锁会因为资源抢占引起,说说unity有哪些资源?
不太确定资源到底是指什么,就把cpu,内存,游戏对象,场景,gpu,resources都说了。
- 11.说一说unity是怎么管理resources的?
resources里面的资源会在打包的时候都加进去,resources会在场景加载的时候读入,然后扯了点动态加载。(实际上进入游戏只是会加载res的索引信息,不会全部加载入内存,答错)
- 12.讲讲TCP和UDP?两者的优劣?
讲了TCP的重传和拥塞控制,然后开始说自己做过的网络游戏小demo
- 13.为什么项目里会混合使用TCP和UDP呢?怎么实现的?
项目相关,讲了大概思路
- 13.TCP和UDP的下面一层是什么?网络层之间的数据具体是怎么发送的?详细过程是什么样的?
网络层主要是实现的不同IP之间的通信,具体实现不了解(又没有回答出来)
- 14.有什么想问的?
最后
分享一下BAT及美团、头条、滴滴、小米、网易等各大公司的各类面试题
最新面试题 https://v2ee.cn/
有需要的小伙伴拿走~