腾讯pcg 后端开发面经
#### pcg 1面
1. 说说项目经历,印象最深的地方
2. 项目重构了是吧,说说如何重构一个项目?
3. 重构项目如何处理与之间老接口的切换?
4. 说说你的web框架,你如何实现一个get post的表单
5. 如果多人访问一个写的接口,如何保证数据的一致性?(事务,乐观锁,redis,MQ)
6. redis的特点,为什么选择redis而不是mongo 或者 memcahced(丰富数据结构,持久化)
7. 分布式架构中,如何确保多个节点数据一致性。
8. 项目使用了nginx,如何确保ngnix高可用?(集群化)
9. 如何把一个项目进行微服务拆分?
10. 说说项目权限控制模块。为什么不用shiro而使用aop?
11. 问他问题(q:为什么不问基础知识? a:之前你1面虽然挂了但是你上次面试评价是基础还不错所以这次不问基础)
### pcg 2面
1. 说说自己最满意的项目
2. 项目中的图片上传如何实现的,如何优化的,底层协议如何设计分片分包?
3. 知道百度云/迅雷如何实现稳定的文件上传而不丢失数据?
4. 如何实现断点续传?
5. 项目接口基于什么原则设计的?为什么这么设计?优劣势?自己的思考是什么?
6. 项目架构?微服务如何拆分的?
7. 在项目中如何定位自身,扮演什么位置?
8. 简单算法(秒了)
,小朋友围成圈,如果序号整除3或者序号任何位置包含3,输出“fuzz”,如果序号整除5或者序号任何位置包含5,输出“buzz”。
9. 有啥想问我的?
### 3面
1. 深挖项目
2. 说说线程池,如何对线程池进行优化
3. 说说Exception异常处理
4. 说说快速排序时间复杂度,何时o(n2),有什么方法可以优化快速排序?
5. 说说希尔排序
6. 说说数据库事务实现与原理
7. 说说innodb的锁,说说间隙锁的使用场景
8. 说说如何防止sql注入式攻击,说说mybatis底层源码实现
7. 手撕算法:数组中前k小的数,分别使用快速排序与堆解。然后提问平时如何确保代码的鲁棒性。
### hr面
1. 自我介绍
2. 为什么选择腾讯?
3. 你在学校的经历?
4. 你的爱好?
5. 上一份实习经历带给你的东西
6. 你能给这个团队做什么
7. 你相比较其他人,你的优势
8. 你相比较其他人,你的劣势
9. 投其他几个公司,相比腾讯你觉得之间的不同
11. 你的实习时间多久?
12. 说一下你面试过程中最深的一个技术点,你回答的很好的一个
13. 你选择的工作城市
14. 是否单身
15. 用一句话评价你可以得到这份岗位的原因
#腾讯##校招##Java工程师##面经#