腾讯后台开发暑期实习面经
背景
- 3月5日 至 3月13日完成腾讯三次技术面试 + HR面试;C++后台开发暑期实习生;
- 分布式存储方向;目前状态为已完成面试;
一面 3月5日 35分钟
-
多线程通信和同步机制:加锁、信号量、条件变量
-
多进程与多线程的区别
-
共享内存、与malloc的区别
-
HTTP和HTTP2的了解
-
TCP与UDP的区别
-
查找的常用数据结构:二叉树、跳表、hash
-
类中一般包括哪些默认生成的函数:构造、析构、复制构造、赋值操作符、取地址操作符等
-
常用的STL数据结构、Vector、Map的底层实现
-
Top k问题
-
常用的调试方法和工具
-
现有开源分布式存储的系统或协议是否了解?
-
分布式存储系统相关问题:数据同步、单点故障、副本容灾、读写一致性等
-
本科期间参与的竞赛作品
二面 3月9日 1小时20分钟
-
多进程通信、同步方式
-
进程的地址空间
-
共享内存使用
-
操作系统内存管理、虚拟分页内存管理
-
TCP四次挥手
-
IO多路复用、select和epoll的区别
-
epoll的LT和ET
-
网络编程服务器端的接口调用顺序
-
多态
-
构造函数是否可抛异常?
-
构造函数中有哪些注意事项?不能为虚函数?
-
析构函数为什么要是虚函数?
-
STL容器的数据实际存在什么位置?
-
查找的常用数据结构?
-
hash冲突的几种解决办法
-
程序编译过程、静态链接和动态链接等
-
闪存介质的写放大问题如何优化?
-
5升和6升杯子,如何获得3升水?
-
项目中的优缺点?以及如何改进?
-
算法题目一道:栈思想,处理字符串
三面 3月12日 35分钟
-
进程与线程的区别
-
是否有了解其他开源分布式存储框架和协议?
-
项目存在的缺点?如何优化?
-
单点故障问题如何解决?
-
多数据节点多线程写的一致性保证?
-
多机备份
-
其他类似关于分布式存储的问题
-
未来两到三年的规划
-
团队交流合作
-
日常如何学习新的知识
-
个人性格问题
HR面试 3月13日 10分钟
- 工作城市
- 个人理想
- 工作计划
总结
- 难度不大,拉低牛油人均大神平均水平;
- 知识点不在多,而在个人的思考。表达很关键。(个人观点,不喜勿喷)
- 面试过程能够帮助发现自身的问题,及时调整发展方向;
- 多实践,多读源码,能动手,尽量不BB