字节跳动 - 客户端开发 - 一二三面 - 面经
一、自我介绍
二、知识点考察
1. C++
1.1. vector的扩容策略
1.2. map是怎么实现的
1.3. 说一下对红黑树的了解
1.4. unordered_map的哈希表是怎么解决碰撞问题的
1.5. deque了解吗,说一下实现原理
1.6. C++是面向对象的语言,虚函数可以实现多态,谈谈你对虚函数的理解
1.7. 你觉得在构造函数中可以调用虚函数吗
2. 网络
2.1. https协议实现过程
2.2. 刚才这一过程的证书呢
2.3. tcp协议是怎么保证可靠性的
3. 数据库
3.1. MySQL了解
3.2. 说说B+树和B树的区别
3.3. 你觉得B+树和B树哪个更快一点
三、算法题
一、自我介绍及面试官提问(约5分钟)
二、知识点考察(约20分钟)
1. C++
1.1 C++中的多态怎么实现的
1.2 你刚才提到了运行时的多态是用虚函数实现的,那么说一说虚函数
1.3 C++有GC吗
1.4 那么C++中内存泄露是怎么解决的
1.5 你刚提到了智能指针,展开讲讲
1.6 你刚提到的shared_ptr计数器,它的实现原理是怎样的
2. 网络
2.1 在浏览器输入网址到看到网页内容,这一过程背后是怎么实现的
2.2 你刚提到的dns,它有哪些解析的方式呢
2.3 你刚提到的http,它和https有什么区别,展开讲讲https
2.4 了解中间人攻击吗
3. 操作系统
3.1 进程和线程的区别
3.2 进程之间通信的方式
三、填空题(约3分钟)
五、算法题(约15分钟)
六、反问(10分钟)