字节 提前批 游戏客户端开发 面经
7.12 晚上八点开始面,面了两轮到九点四十,第二轮感觉答的不是特别好,希望能过
连续两面都被问到了垃圾回收,所以C++的垃圾回收是什么,我就只知道手动管理(free/delete)和智能指针了
7.16 更新三面,没有写代码环节,感觉有点悬,希望有好消息
7.21 挂了,收到了别的hr打来的电话说要捞我,应该就是挂了吧,55555
一面 1h
一面问的东西真的特别多,基本上面试八股文全部过了一遍(数据结构、操作系统、网络),记不起来全部了
1.自我介绍
2.内存分配
3.随便说一种常用的数据结构的特点(选的数组),联系存放的内存有什么好处?操作系统层面有什么好处?如何提高cache命中率?
4.哈希表,哈希函数,哈希冲突
5.说一下网络的部分?TCP三次握手,为什么是可靠的,几个信号的作用,seq和ack的作用
6.C++11的新特性?
7.内存管理,智能指针,垃圾回收??
8.进程线程,通信方式,进程线程安全
9.10个台阶,每次一阶或者两阶,有多少种走法,这是斐波那契数列吗(答了动态规划的方法),这是自顶向下还是自底向上,如果用自顶向下怎么算
10.右值引用了解吗,C++11的新特性?
11.设计模式了解多少(基本不了解),设计模式的作用是什么
12.做题,字符串数组两个字符串的最小距离(easy)
二面 40min
1.自我介绍
2.内存管理,static作用,在什么位置,有什么好处(没答上来),堆和栈为什么不能合并?
3.完全二叉树是什么,有什么作用(没答上来)
4.如何存储一个图?图的遍历算法(广度深度)(好久没接触过图了真的记不清了)
5.虚函数,实现机制
6.指针和引用的区别,一般什么情况下分别使用?
7.如果进行内存管理,了解有垃圾回收机制的语言吗?
8.做题,数组中和最大的连续子数组(mid)
9.提问环节
三面 50min
1.C++里STL常用的结构和使用场景(其实还是数组和链表)
2.一个地图,有很多玩家和怪物,如果以一个圆为范围扣血,怎么快速找到需要扣血的玩家(想了很久,想到了哈希表),如何实现
3.如果用哈希表来进行存储,怎么实现对应的区域的快速增删,链表该怎么实现,数组该怎么实现
4.迭代器什么时候会失效
5.问了一下项目,还比较深入:QT怎么管理控件,如何保证客户端缩放大小时,里面的元素大小正常;QT的信号与槽机制怎么实现的,C++内部的机制是什么,用QT传输消息的时候消息的格式是什么
6.一个磁盘,怎么处理可能出现的零碎空间?读文件的时候会用到fseek,怎么实现快速的移动指针到文件头/末尾
7.你玩过什么游戏,你觉得QQ飞车里面的技术难点是什么
8.反问环节
#字节跳动##游戏工程师##校招##面经#