网易互娱游戏研发面经+时间线

3.27 一面(60min)
1.自我介绍

C++

2.C++结构体的内存对齐题两道,问占多少字节的存储空间,如果要优化它的内存空间应该怎么优化
3.内存对齐的好处是什么
4.int func() const;是什么?
5.map的底层数据结构?
6.讲讲红黑树?红黑树怎么进行插入、调整?删除时最多旋转红黑树几次
7.了解AVL树吗?AVL树和红黑树的区别是什么
8.快排和归并排序的过程?时间复杂度各是多少?最坏情况下会退化至多少?
9.快排什么时候会退化至最坏情况?有什么方法能够避免这个最坏情况
10.算法题:合并两个有序数组(就是写归并排序最后那个merge的过程)
11.unordered_map的底层数据结构是什么?
12.哈希碰撞有几种解决方式?各自有什么优缺点?
13.普通哈希扩容时,如果哈希中元素很多那么扩容效率会很低,如何解决?(这里我答了渐进式哈希)
14.渐进式哈希扩容的过程中,插入、删除、查找的过程是什么?(面试官说目前渐进式哈希扩容的解决方案不多,让我按自己的想法说就行)
15.哈希冲突的链表法和开放定址法怎么进行删除操作
16.C++继承的内存布局
17.C++的菱形继承
18.C++虚继承时继承的内存布局和普通继承相比有什么变化(没答出来)
19.C++的多态怎么实现的
20.讲一讲C++的虚函数
21.构造函数能是虚函数吗?析构函数能是虚函数吗?
22.讲讲share_ptr
23.怎么避免share_ptr产生的循环引用问题

计算机网络

24.TCP和UDP的区别
25.为什么TCP握手需要是三次?挥手是四次?
26.为什么会有Time_wait阶段
27.在短连接时,服务端发生处于Time_wait阶段的连接太多,无法accept()的情况,你会怎么解决
28.UDP和TCP能共用同一个端口吗

一面之后过一周约二面

--------------------------------------------

4.8 二面(60min)
1.自我介绍
2.自我介绍讲了我觉得我比较细心负责,面试官让我举例说明(然后跟他讲了我做项目的事情;后面又问了我很多项目开发过程中团队合作方面的问题)

项目拷打

3.你了解的比较多的技术栈是什么
4.讲一讲项目中用到的有限状态机的代码框架,比如需要有什么基类、要实现什么接口等等
5.你觉得你写的有限状态机跟普通的有限状态机相比有什么优点
6.性能优化方面,使用对象池为什么能起到性能优化的作用
7.你的对象池有限制缓存对象个数吗?(我说没有,但是可以对对象池中的对象设置过期时间)
8.讲讲对象池设置过期时间的逻辑

场景题

9.那如果对象池要限制缓存对象个数,应该怎么做?(我回答说LRU)
10.LRU一般用什么数据结构实现?(双向链表和哈希)
11.如果要在你这个对象池中划分子对象池,并用LRU控制子对象池的大小,应该怎么设计?(回答父对象池的键值对中存子对象池,子对象池中再存以每个缓存对象为结点的LRU双向链表)
12.有没有了解过优先级队列?优先级队列是用什么数据结构实现的?(最开始说也可以用双向链表,后面反应过来说用堆)
13.用双向链表怎么实现优先级队列的插入?用堆怎么实现插入?
14.如果优先级队列中的每个元素有一个唯一id,在往优先级队列中插入元素时,如果该id已经存在在优先队列中,就更新它的信息,否则就新增结点;这种情况下应该怎么改进?(用哈希表记录id和对应元素,插入时根据哈希找到对应结点并更新)
15.如果是用堆实现优先级队列,在更新堆时,哈希表需要做什么操作?(我说如果堆上滤/下滤时是直接交换两个结点,此时哈希不用做操作;如果只是把需要交换的两个结点的值进行交换,就要对应修改哈希中键值对的值指向的结点)
16.堆怎么进行插入、删除操作?时间复杂度是多少?

C++

17.讲一下你觉得C++和Java/C Sharp是虚拟机语言,C++不是)
18.虚拟机语言和C++这种语言的区别是什么(不太了解)
19.C++编译后生成的文件是什么?能直接运行吗(汇编文件,要运行还要进行链接)
20.虚拟机语言生成的文件是什么?能直接运行吗(这里感觉还在引导我,但我真没了解过TT)
21.讲讲C++的预编译阶段会做什么事情
22.C++如果在两个头文件中声明了同样名字的一个类,并在一个cpp文件中同时引用了这两个头文件,会报错吗?(我说类不太了解,但如果是全局变量/函数的话会报错,面试官让我回去之后再查一下)
23.成员函数用const关键字修饰时会发生什么?在常成员函数中能调用非常成员函数吗
24.如果就是要在常成员函数中调用非常成员函数,应该怎么做?(说了很多猜想都面试官都说再想想,然后也是很nice的在下面的问题中引导了)
25.你知道C++的强制类型转换吗?比如const_cast?
26.那你了解this指针吗?常成员函数的this指针是什么样的?(const_cast和this指针一结合就想到,可以用const_cast将常成员函数传入的this指针变成非const的,然后应该就可以调用非常成员函数了)

其它

27.开发中会使用AI工具吗?一般使用什么样的AI工具?会在什么场景下使用?(我说会用,会让AI帮我review代码,也会跟AI学一些好的代码优化方法)

反问
1.一般有几轮面试?
2.如果能通过,入职之后会做什么工作?

无算法

--------------------------------------------

二面之后第二天约的hr面
4.10 hr面
4.11 oc(不过到4.24为止看官网上的流程都还在hr面)

--------------------------------------------
4.25更新 今天官网流程变录用审核了
4.25第二次更新 下午邮箱收到offer啦 

#暑期实习 ##游戏研发##游戏客户端##面经##网易互娱##暑期实习校招#
全部评论
佬,决定去哪了?
点赞 回复 分享
发布于 04-27 07:25 江西
接好运
点赞 回复 分享
发布于 04-25 19:30 湖南
佬今天状态有变录用审核吗
点赞 回复 分享
发布于 04-25 13:42 江苏
佬是打电话问的吗,oc了
点赞 回复 分享
发布于 04-25 13:06 湖北

相关推荐

我也想要红名timeline————————3.23笔试(2.1/3)3.25约一面3.26一面4.3约二面4.8二面4.21约hr面(已拒)一面:上来自我介绍,然后项目拷打,然后八股底层内容拷打1.排序算法,以及他们的时间复杂度,复杂度是怎么算的,快排平均复杂度怎么算2.C++容器,解释哈希表,哈希表中不使用链表该怎么解决key值冲突(不使用其他容器)3.vector和array区别,使用场景4.map,unordered-map底层实现5.智能指针 sharepnt中的引用计数的内存在哪儿?会单独有一份内存存储所有智能指针的引用计数吗?当你用它指向一个共享数据时,再创建一个,那第二个怎么知道引用计数的内存地址呢?6.虚函数用来干什么?实现机制是什么?虚函数表怎么记录的?每创建一个派生类对象都会创建一个虚函数表吗?7.C++编译过程了解吗?8.tcp三次握手四次挥手过程9.python和c++有什么不同10.python字典结构中,什么东西不能做key值?nplist为什么不能做?11.玩过游戏吗?了解游戏引擎吗?为什么想做游戏开发?12.new和delete过程了解吗?我想用new指向之前new好的地址怎么办?13.用过ai吗?平时怎么用?用过代码ai器吗(类似cursor)14.一个爬楼梯方法问题,秒了,没让写,让说实现思路最后反问我有什么不足,说对不明白的东西需要刨根问底,不懂的东西要去搜一下,至少直觉上要有一个认知全程1h10m,面试官很好,全程说说笑笑二面:因为当时电话里面答应好二面了,所以就继续面了一下。首先是对于项目的一个介绍。介绍以后呢,我是两个项目,他就问你对于每个项目中遇到的最难的点是什么?怎么解决的?对于项目的细节也进行了一些提问。然后应该就是几个题,前面几个没让写1.给一个数组,现在放一个机器人上去,可以上下左右移动,但是只能移动到比当前数字更低的位置,要求你计算出机器人放在每个位置时可移动的最远步数。2.如果数组是无序的,该怎么去求呢?3.给你一条路,路无限长,路上有n个行人,每个行人有两个特性(速度大小,移动方向),问你怎么求出最先碰面(所有行人中,最先相遇的)的行人的所需时间。时间复杂度4.给你两个数组头部指针,这两个数组是有序的,让你合并数组,并且合并以后数组仍是有序的。写完以后让改成模版参数(忘了模版声明怎么写了)5.问了到岗时间,实习时间,投了哪些公司?主要投递岗位是什么?实习地点选择?为什么想来服务器开发?6.如果多个公司都有offer怎么选择?7.具体游戏研发分为服务器引擎开发,服务器工具开发,游戏玩法开发,如果能进来想做哪方面?8.七个工作日以内会通知结果9.介绍了一下进来以后的培养流程10.问表现,说其实面试不是去难倒你,而是去看你的发光点和优势在哪儿。所以每个人的表现都不一样,但是具体不能说谁好谁坏。但是自己的表现自己应该清楚,要明白自己比别人厉害在哪里,差在哪里,然后自己面试以后回顾去改进。不知道为啥流程需要这么久,可能太菜了一直在泡池子,刚被捞起来,hr给我打电话,第一句话就是抱歉,流程太慢了,然后问现在约hr面我会不会接受,我就拒了
查看24道真题和解析
点赞 评论 收藏
分享
评论
3
25
分享

创作者周榜

更多
牛客网
牛客企业服务