投的后台开发,变成客户端开发了。刚开始明确说了是做游戏的,用c++和c#偏多。
自我介绍
项目介绍(20min左右)
算法(30min左右):
快排原理(三个步骤)
堆排原理(两步:建堆、调整堆、建堆是怎么建立的、调整是怎么调整的)
归并排序如何优化空间复杂度为O(1)(这里提示了半天,我说了一种方案双指针交换元素,面试官说还能优化。)
AC自动机原理(简历上写了)
记得KMP算法吗?(不记得)
Hashmap扩容原理(简历上写了)
红黑树红色节点和黑色节点表示什么含义,红黑树和avl有什么区别?(不是很了解红黑树)
操作系统:
加锁底层的原理是什么(不知道)
线程之间同步数据有哪些常见方法(互斥锁、PV原语)
线程内部的全局变量其他线程能不能访问到(这里应该想问的是,一个线程内部定义了一个变量,如果创建两个线程,那么这两个线程在运行的时候,这个变量是不是共享的?我说的不能)
原子变量是什么(把原子操作、JVM内存模型说了一下,然后说了一下经典的 i ++)
如果用原子变量对一个数进行加法,和不用原子变量有什么区别?(这里应该是想问原子变量底层干了啥事,说的不知道)
计网:
三次握手、四次挥手流程
反问之前,面试官先介绍了一下他们的基本情况:做的全境封锁手游,用的UE4引擎开发的,工作地点深圳。
反问:
刚才注意到您这边问算法比较多,这个是因为游戏这边优化经常要用算法吗?这是一部分,还能考察一个人的思维能力。
算法这一部分您有什么建议吗?刷题、关注一些常用算法在工程中是如何落地的。
团队中搞竞赛的人多吗?校招的有但是不多,社招几乎没有。
总结:
面试官感觉反馈挺好的,我每说一句他基本上都会用“嗯”回应我。中间问问题,我答不上的也会引导我。整体感觉还不错。
待改进:
AC自动机、KMP、Hashmap扩容原理、红黑树答得都不是很好
操作系统没怎么看,所以基本上都没答上来
四次挥手最后2MSL的作用说着说着把自己绕进去了,感觉也说错了
#面经腾讯美团百度#