网易互娱-游戏研发工程师一面

#后端开发##网易##软件开发笔面经#
7-26更新
今早一起来就看到网易发的短信说确认二面时间,感觉有点神奇。
一面真的不知道自己在说什么,这是一面面试官要求太低了,还是我运气好啊,或者说是参加一面的都推到二面了???
算了,既然发了二面,还是准备准备吧
------------------------------------------------------
TimeLine:
7-5   笔试
7-8   约面试
7-24 一面 7-26 二面通知
7-29 二面
------------------------------------------------------
网易的面试也太难了,而且牛客上网易面经似乎比较少。
问的很底层,常规八股可能就问了三四个,追问的基本一个问题卡好久说不出话来,但是面试官真的很有耐心。
吐槽一下面试官的摄像头,从下往上拍,一直照着他的手,劈里啪啦一直在打字。

一面(60min):
1. 自我介绍
--------C++----------
2. 虚函数知道不?
直接开始吟唱虚函数的组成、存放位置之类的。
3. 构造函数中可以用虚函数吗?
我以为是问构造函数可以是虚函数吗,搞错了问的是能不能调用虚函数。我说虚函数表是放在常量区嘛,所以应该是可以用的,但是不能在有未初始化的成员函数时用,所以还是最好别用。(我开始乱答了,而且这里卡了好久)
4. 假如一个base,一个继承类继承了这个base,而且这个base里面有一个虚函数,那么这两个表的虚函数地址有什么关联?
这里一直没有懂他在问啥,最开始回答了一个如果继承类重写了虚函数,那么就会指向继承类的虚函数地址。如果没有重写的话就是保存基类虚函数地址。结果他重复了一遍问题。。。
这里一直没答出来,断断续续说我感觉基类和base类虚函数地址应该没啥联系吧。然后我沉默的时候面试官一直在重复问题,还换了个说法,但是我一直没有搞懂这想问啥。
5. 看我没答出来,换了个问题,比如一个类有两个虚函数,那么你是怎么知道虚函数的地址呢?
这里我说虚函数表,程序可以直接找到。他说不是,问你知道程序干了啥找到的吗,就比如说这两个虚函数,程序是如何找到你要的那个虚函数地址?我又有点懵了,说不会。
6. 平常用cast吗?
我又懵了,然后他说比如static cast,const cast。我就简单说了下static和const的用法和优点。
7. 说完他又问了一些别的,我没听懂,就直接说不会。
8. 用stl吗?
我给听成了用sql吗,哈哈哈哈笑死我了。我说用。
9. 平常用vector吗?讲下vector?
常规八股。讲了动态数组以及优缺点。
10. 给了道场景题,如何删除一个vector里面所有的2?
给了两个方案,一个双指针,让2和最后面的数换位,这样最后面就全都是2,相当于删除了。一个是用一个新的vector直接去存。感觉面试官说好的好的,感觉不满意这个答案?
11. 平常用map吗?和unordered_map关联?
我说主要用unordered_map,然后他问为什么不经常用map呢?常规八股,讲了下这两个的底层以及适用情况。然后讲完了他说对,但是你为什么主要用unordered_map,我又重复了一下这个底层是hash,时间复杂度低啥的,感觉不了了之了。
12. 如果你的unordered_map插入太多了,桶空间满了怎么办。
我说插入太多会让其哈希冲突过多,性能下降,这个时候需要rehash,rehash预分配更多的空间,并且可能导致重新分配元素。(这里也是拉扯了一会)
--------数据库----------
13. 刚听你说了sql(就是把stl听成了sql),你平常用吗?你平常是怎么考虑你的sql的时间复杂度的。
基本没写过sql,就背了八股。我就说主要看where的循环嵌套和索引。
14. 索引的话,系统怎么知道用哪个索引呢?
我这里以为问的最左匹配啥的,说了一个联合索引区分度大的放前面,他说问的不是这个。比如说系统知道你有一个索引班级和一个索引姓名,那么是怎么判断要把班级放前面呢?这里我也不知道答啥,又battle了一会。
15. 索引有啥数据结构?
就答了B+树,答了实现、时间复杂度和优点这些,这么久总算是有道会的了。
--------计算机网络----------
16. TCP三次握手后处于啥状态?
这又给我搞懵了。我说三次握手时,最后处于ESTABLISHED已连接状态,他说不是三次握手时,是已经三次握手后。我不知道在问什么了,过了一会我又弱弱的说了个处于已连接状态?他就放我到下一题了。
17. 假如TCP握手后,一端crash掉怎么办。
本来又没搞懂想说四次挥手,他又赶快打断我说不是这个。我就说我记得TCP有个保活机制,如果一端crash掉的话,由于TCP会定时发送探测报文,如果没有回应,在多次超时重传后会认定连接有问题。所以应该是发送端发现有问题的时候,会自己主动中断连接?
18. 又问了道类似的TCP的,不太记得了突然。
--------项目----------
19. 大概问了下我自己做的项目,又是问的机器学习和自然语言处理。这里问了下OCR的过程,大概讲了下。
--------反问----------
20. 八股问的这么底层,要如何准备呢?
面试官就说他不是很喜欢学生上来直接背诵八股,那样太浅显了也没意思。他自己的学习方法就是把一个软件直接学到硬件层,比如TCP他就学到网卡接收后的动作这个层面。
21. 没敢问项目组,因为感觉自己答得依托。就拜拜了。

总结:面试的时候就感觉自己的答得依托,好多问题直接卡半天说不出话的感觉。主要是面试谁都不知道会问什么,所以需要先保证背的广度。然后又需要深挖,面试官指不定会出什么问题。这次面试给我的感觉就是全都背过这些知识点,但是一深挖直接汗流浃背,虽然面试官有一直笑眯眯,但是我面试完就感觉自己要挂了。
全部评论
真的深挖呀,网易还是难
点赞 回复 分享
发布于 07-24 21:15 北京
楼主什么bg
点赞 回复 分享
发布于 08-03 23:40 四川
是实习嘛?互娱已经开了吗~
点赞 回复 分享
发布于 08-06 17:36 浙江
虚函数那里应该是想问你,虚函数表对应的表项顺序和虚函数声明顺序一致,如果调用某个虚函数其实编译器会通过该虚函数在类里的声明位置得到虚表索引去查虚表。
点赞 回复 分享
发布于 10-11 01:12 湖北

相关推荐

3 29 评论
分享
牛客网
牛客企业服务