网易互娱游戏研发工程师一二面面经
网易游戏面经
一面
算法题:最长重复子串,如ababa(ab出现两次输出2)
1.C++用来做什么
2.c++整数哪些类型,如果跨平台的时候用这些吗怎么办
3.浮点数的存储,底层是什么?如果把float强制转为int会发生什么?浮点数编码
4.什么时候发生类型的转换
5.staic_cast和dynamic_区别
6.运算符的重载,参数的数量怎么确定?在类里面和不在类里面?不在类里面该怎么声明?不在类里面声明怎么访问类里面的属性(如果是私有的呢?)
7.有了解过const指针定义吗?char* const / char const* / const char*
8.const能修改吗?怎么修改?常量能转为非常量吗?
9.STL容器有哪些?怎么分为两大类?
10.map怎么存储的?红黑树特征?是严格平衡二叉树吗?和普通的平衡树有什么区别?红黑树相邻节点必须相反吗?
11.unordered_map怎么存储的?存储的结构专业名字?哈希冲突
12.两种STL本质区别是什么?(关联容器和顺序容器)
13.vector的底层实现有了解吗?vector为什么比数组好?vector很长1W10W怎么存储的?
14.构造函数的初始化列表(没有了解)
15.构造函数的隐式转换
16.虚函数是干什么的?比如在子类的构造函数调用自己的虚函数是子类还是父类
17.模板用过吗?
18.类的对象占多少内存
19.前缀树和后缀树
20.排序算法?快排讲一下思路
21.图了解吗?图怎么遍历?说一下深度遍历,和二叉树的哪个遍历?
22.加密算法和压缩算法
23.项目用的什么协议?json传输用的什么协议?
24.tcp和udp协议的不同
25.UDP怎么保证可靠
26.tcp和http的keep-alive的区别
27.前端网页的心跳检测需要自己实现吗?
28.http协议是自己解析的吗?主从状态机介绍一下?为什么要用主从状态机?有了解过库吗?
29.除了get和post其他的有了解吗?
30.I/O多路复用介绍一下?区别?epoll是自动的吗?阻塞和非阻塞?kqueue?nginx了解吗?
31.linux是什么发行版号?
32.I/O多路复用有哪些api
33.DNS协议有了解吗?给一个网址怎么找IP?有没有命令自己用命令
34.异步日志系统介绍一下
35.阻塞队列安全怎么保证?还用了什么来保证它的多线程安全
36.进程和线程的区别
37.子进程的写时复制底层了解吗?
38.进程间的通信
39.进程的调度有了解吗?
40.进程内存的布局?随机化了解过吗?
41.cpu缓存?多核共用一个缓存,多核访问同一个缓存?
42.linux指令有用过吗?
二面
1.写一个线程池,大概10分钟
2.异步日志,怎么写的?要是有一条很大的消息,怎么办?我答分拆,又问我怎么合并,怎么保证原子性?当时有点糊,没理解啥意思
3.设计一个k-v系统,100M大小的id-desc对,所有id大小1.5M,只有10M内存,设计一个数据结构怎么查,写出来?不会
4.设计一个定时器类,三个函数int add(int delay, ICallback* cb)(到了delay这个时间,调用这个回调函数);void CancelTimer(int id)(删除这个id);void update(int time)(主循环执行的这个函数,更新所有定时器);没理解啥意思,没写出来,讲了思路
5.算法题:给一个字符串(举例:110024100241024024),给一个target(1024),找前一个字符串有多少个1024(按次序),限定时间10分钟。写了一个暴力递归,说是复杂度太高了,代码不规范,工作中是不合格的。。