【腾讯】Java岗-非科班面试总结
一面82分钟:
首先问到了项目的架构设计,然后扩展,如果自己项目需要满足10W QPS的需求,架构如何设计?
项目里面高并发下如何实现请求的过滤以及消峰?
集群环境下如何保证数据的一致性?
服务器集群以后如何做到数据的共享?
说一说一致性Hash吧?
问我MySQL主从复制会不会?回答不会。
那你自己设计一下MySQL的主从复制应该如何解决?画一下你的思路?
最后面试官告诉了我MySQL主从复制的原理。然后和他探讨了一下我对这个原理的疑惑。
当时是使用了Redis主从复制的思想来考虑的。
你这种解决办法是从结果来考虑,是不能从原因角度考虑?
说一下STL的Map?
我说我不会,然后讲了一下java的实现,画了一下数据结构图。
讲一下红黑树?
我说您直接看我博客吧,里面有对他的分析。
ali云用的linux什么版本?虚拟机的呢?
说一下常用的shell命令?
看过那些书?
选择出最好的三本?
学习过程?
为什么硕士不报计算机?
你项目里面的这些架构的设计是怎么学习的?
还有一些架构设计的问题忘了了。
二面:
面试开始(被吊打之旅开始,完完全全被吊打的没有还手之力):
一轮面试官对你评价比较好啊,说你是自学Java的?说一下过程?
你懂不懂C++呢?说一些你会的就行。
-1的二进制码是多少?
说一说大小端?
描述一下客户端和服务端进行socket的系统的过程吧?
系统调用是怎样的?
如果服务端在listen以后sleep了,那么client的connect还能接收到么?
进程间通信说一下?
选择一种说一下实现原理?
那么管道和消息队列之间有什么区别么?
为什么有这个区别?
快排思路说一下?
手下一下,拍照片给我。
知道队列么?
手写一下用数组实现的循环队列吧,只需要两个方法入队以及出队?
在改进一下?
为什么使用这种写法?这样就会有一个空间没有利用。可以不可在改一下?