腾讯面经攒人品(后台开发1+2+3+4+hr面)
更新啦,今天接到offer call 和 offer mail,感谢大家!
3.31已完成,目前正在等待offer call,一直以来在牛客上得到了很多人的帮助,也看了很多大佬的面经,感觉自己应该回馈一波了。第一次发面经贴,格式不太懂,大家将就一下QAQ
腾讯微信一面(71min)
1.Java ArrayList、ConcurrentHashMap(怎么减少冲突,1.8为什么不用分段锁)
2.Linux I/O模型(select、poll、epoll区别,epoll回调传送的是什么,内核态和用户态数据传送是怎么样的,同步、异步、阻塞、非阻塞)
3.数据库,为什么用B+树,聚簇索引(MySQL,叶子节点存放数据),非聚簇索引(MYISAM,叶子节点存放地址,索引数据分开放);聚集索引非聚集索引,如何查找慢sql,如何提高慢sql的查找效率;联合索引何时不生效;(举了个例子,where b = xx and a = xx联合索引生效不(联合索引为(a,b,c)))
4.计算机网络HTTP1.0 1.1 2.0的区别,新特性,HTTPS具体(SSL握手+对称加密传输);中间人攻击,XSS攻击(这个不太懂,面试官没问了)
5.算法10亿交易量,找出最大的10条,说明时间复杂度
6.项目。问答社区,如何保证异步事件被执行:打印日志,看看有没有执行,没有则执行;如何保证幂等性;为什么不用redis的订阅发布,这样就不用轮询去查有没有事件了;tomcat实现的是HTTP1.几(1),如何实现长连接(我用的BIO);单机版的,如果宕机了怎么办;设计模式HTTP服务器里面用了什么设计模式(门面),说一下;怎么知道该服务器需要设置多少线程才合适;
8.多线程synchronized和lock的区别,哪些项目用了多线程,哪里用了自旋锁;
后面几面没有详细记录,只是记了一些自己不太清楚的点,供大家参考。
2+3+4面
中间人攻击、linux文件内存分配(例如1个100M和4k的文件如何分配内存)、https握手后公钥如何传输的,公钥放在哪里、redis集群(如何集群,最少多少个才能形成集群)、如何设计一个俄罗斯游戏(问我最难的,后来提示碰撞检测代码如何写)、springboot是如何加载bean的、biginteger、springmvc单例吗(真的是脑子抽筋了。。默认单例的)
优点、弱点、我的标签、奖学金的由来、项目里面的身份做了什么、微信和其他同类型产品相比的优势和缺点、哪里人、父母干什么的、家庭对我的影响、平时怎么学习,为什么、哪种学习方法最好、未来3-5年的规划、想进去怎么样的实习环境、回顾大学,最想重新做好的事情;