美团 基础研发平台一二三面(已意向)
一面
C++:
1.define和const使用场景
2.define和函数区别
3.声明和定义的区别
4.函数声明时指定默认参数值可以吗
5.#include<a.cpp>文件可以吗
6.((1llu << 33) & (1 << 31)) 结果
7.代码检查大小端
8.A的构造函数调用了几次
class A { public: A() { cout << "default" << endl; } void get() { } }; A getA() { return A(); } void func(A a) { a.get(); } int main() { func(getA()); }
OS:
9.socket()编程过程
算法:
10.string表示的IP转int
二面
C++:
1.左值和右值,左值引用和右值引用
2.shared_ptr是线程安全的吗
3.unoredered_map如何解决哈希冲突,元素过多如何保证常数复杂度查找
4.父类的析构函数设置成虚函数的原因
OS:
5.多线程编程发生死锁的情况
6.只有一个锁会造成死锁吗
7.对于一个map的并发读写,如何优化使并发量提高
计网:
8.四次挥手
9.编程时如何判断对端关闭连接
MySQL:
10.事务的隔离级别
数据结构:
11.寻找TOP K的方法,讲一下时间复杂度
算法:
12.重排链表
三面
实习+项目:
1.实习最大的收获
2.组里几个人,怎么分工
3.了解其他RPC框架吗,使用的RPC底层了解吗
4.RPC上游下游讲一下
5.缓存设置在本地考虑了哪些因素
6.定时器是自己实现的吗,框架的实现看过吗
OS:
7.讲讲Go的协程
8.线程和协程的区别,协程更轻量的原因
9.虚拟地址到物理地址的映射过程
10.页表的数据结构
11.用户态和内核态区别
12.用户态到内核态过程
13.中断的种类,用户态到内核态是硬中断还是软中断
14.知道无锁队列的实现吗
15.CAS用到的指令
16.Linux内核缓冲区的组织结构
17.Linux编程怎么学的,看的书名是什么
MySQL:
18.MySQL怎么学的,看的书名是什么,这本书讲其他存储引擎了吗
19.讲讲MySQL的日志
20.你提到了物理日志和逻辑日志,区别是什么
21.为什么不用redolog做主从复制
22.binlog只记SQL吗,为什么要有混合记录
23.索引的种类,哈希索引讲一下
24.如何保证哈希索引和B+索引的一致性
C++:
25.STL里的容器是线程安全的吗