腾讯Java社招四面面经分享
一面
1、有序数组排序,二分,复杂度
2、常见排序算法,说下快排过程,时间复杂度
3、有N个节点的满二叉树的高度。1+logN
4、朋友之间的点对点关系用图维护,怎么判断两人是否是朋友,并查集,时间复杂度
5、单元点最短路的方法,时间复杂度
6、如何实现关键字输入提示,使用字典树,复杂度多少,有没有其他方案
7、hashmap的实现讲一下吧。讲一下红黑树的结构,查询性能等。
8、Java中的垃圾回收讲一下,讲了分代,gc算法,gc root可达性分析等
9、讲一下两个项目你都做了什么把。
10、除了代码之外你还学习了什么技术,框架。
11、死锁是怎么产生的
12、线程和进程的区别
13、进程的通信方式
14、CPU的执行方式
15、代码中遇到进程阻塞,进程僵死,内存泄漏等情况怎么排查。通过ps查询状态,分析dump文件等方式排查。
16、Linux了解么,查看进程状态ps,查看cpu状态 top。查看占用端口的进程号netstat grep
17、10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。18、18、MapReduce分割文件处理。
二面
1、快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程
2、100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。
3、一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。
4、四辆小车,每辆车加满油可以走一公里,问怎么能让一辆小车走最远。
5、hashmap的实现,hashtable,concurrenthashmap实现。
6、MySQL的索引,B+树性质。
7、Linux的cpu 100怎么排查,top jstack,日志,gui工具
8、Linux大文件怎么查某一行的内容。
9、Redis内存数据库的内存指的是共享内存么
10、Redis的持久化方式
11、秒杀系统的架构设计
三面
1、十亿个数的集合和10w个数的集合,如何求它们的交集。
2、十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。
3、TCP和UDP的区别,具体使用场景呢。
4、TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。
5、对于socket编程,accept方法是干什么的,在三次握手中属于第几次?
6、Linux操作系统了解么,了解一点点,就没问了。
7、对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab。
8、除了单例模式,知道适配器模式怎么实现么,有什么用
9、回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么?
10、Redis和MySQL有什么区别,用于什么场景。
11、问了一下最近看什么书,什么时候开始写博客的
四面
1、自我介绍
2、项目,收获
3、Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。
4、TCP和UDP的核心区别在哪?
5、TCP的四次挥手,time wait状态有什么意义。
6、最后问我有什么想问他的?
#腾讯##社招##面经##Java工程师#