网易雷火实习凉经(三面)
一面
-
没有自我介绍直接开始
-
写代码,单链表的快排(看我有点懵就说算了那先写个普通快排吧)
-
写到partition,问我partition函数是干嘛的
-
取基准值怎么取,我扯了快排性能高度依赖于基准值,然后说有直接取头/尾元素、三数取中法、中位数的中位数法
-
快排最坏情况下时间复杂度
-
然后开始写,写了六七分钟
-
partition函数里最外面的while的目的是什么,为什么不能换成if(脑抽了没答出来)
-
深挖partition里每一句
-
快排是不是稳定的,有哪些排序方法是稳定的
- 下面开始做题
-
-
-
-
-
- 每个题挨个选项问为什么
-
UDP为什么不可靠,TCP为什么可靠
-
TCP怎样发现数据丢了,丢了会怎样处理
-
UDP为什么快
-
TCP的全双工怎么理解
-
TCP一端还在发但是另一端已经关闭了怎么办,就是我知道对面已经关闭连接了但是我还要向他发数据,在应用层该怎么处理
-
select和epoll有没有最大描述符限制,epoll的限制体现在哪(我说1G内存大概10w左右)
-
epoll底层用了哪些数据结构,红黑树和链表分别是用来干啥的,红黑树的key是什么
-
之后开始过基础
-
C++11的lambda是如何实现的,它跟真正的仿函数在实现上有什么区别,lambda内部可以有一个局部变量但是仿函数没有,是为什么
-
项目里多线程用的API是什么
-
用锁的时候发生竞争会把进程陷入到内核态还是保留在用户态,为什么
-
项目里用到了ORM,ORM是什么,为什么用到这个,用过哪些ORM框架
-
项目里用的muduo是基于reactor还是preactor,哪些模型基于preactor,reactor有哪些好处,reactor的线程模型是怎样的,muduo里不同线程间的通信是怎样的
二面
-
做个自我介绍
-
数据库连接池项目是学习项目还是什么(我说是toy),做这个有什么背景,为什么会想到做这样一个学习项目
-
在做的过程中遇到最大的挑战是什么
-
怼我的数据库连接池没什么实际用处,问我qps是多少,每秒处理多少请求
-
介绍聊天室项目
-
为什么要有跨服务器的通信,问项目的业务逻辑,提出一些业务上的边缘场景问会发生什么,怎么解决
-
redis有没有做持久化,redis宕掉会怎么样,怼我说你只是用redis做了一个没有质量保证的消息队列而已
-
#include<a.h>和#include"a.h"有什么区别
-
C++程序中调用被C编译器编译后的函数为什么要加“extern C”
-
知不知道虚继承,虚继承解决什么问题
-
dynamic_cast,解决什么问题,引用的情况下不成功返回什么(我说不会,然后让我设计一下,我说抛异常)
-
select和epoll的区别
-
问我刚说的内存里拷贝来拷贝去放的什么东西,然后问epoll的水平触发和边缘触发(我说不知道..(我这块很菜是尬背面试题)),问我epoll到底用过没,用epoll的大概流程是什么样的...然后怼我说这你就敢在简历上写熟悉IO复用模型
-
UDP和TCP区别
-
解释一下什么叫面向流、面向报文
-
UDP发送到应用层的一条数据有可能会被拆分成多个数据包吗
-
TCP和UDP的具体应用场景(我提了一句qq是用TCP和UDP结合实现的,然后问我怎么结合、为什么结合、解决什么问题。我说好像挖坑了这个我不太熟,他说不要给自己挖坑嗷hhhh.....气氛一片欢声笑语)
-
为什么UDP速度快
-
你现在是大二?实习能从什么时候到什么时候
- 做题
-
三面
-
你是如何理解服务器开发的,它要做哪些事情
-
做题,给你一个8*8的棋盘,从一个起点开始,按日字形走,走满整个棋盘,每个点只能走一遍,输出一个可行路径
-
平时写代码多吗(我开始尬吹)
-
有什么问题(我问了进去能接触到什么技术和业务 能有什么成长,我还八卦了一下 他们是倩女幽魂端游的)
三面面试官人也超好,写代码给了很多提示,然后问问题也详细解答了,还主动给我提了些建议,反正就,我也挺乐呵他也挺乐呵的....感觉雷火的氛围可能会很不错