1.自我介绍
2.说下String与StringBuilder的区别,和使用场景,线程安全方面呢?(StringBuffer呢?),三者区别?
3.JVM的GC回收(这是个很庞大的知识体系,从垃圾判定GC ROOT搜索算法,到分代收集理论,再到常见垃圾回收器优缺点,想条理清晰说清楚不容易)
4.Java在GC时JVM会暂停执行用户程序吗?解释下STW问题,为什么?
5.讲一下Java的反射
6.说一下虚存与实存
7. epoll和select的区别
8. 说几个常用的linux命令,比如netstat等
9.描述一下计算机网络三次握手过程
10.手撕代码:Z字型遍历二叉树(剑指offer原题,LeetCode第1553题)
11.闲扯项目经历
12.提问环节
原以为一面结束要过几天才能约二面,没想到字节效率贼高,一面结束面试官说让我在线上等待,5分钟后开始二面。
二面:
1.讲一下数据库的表连接操作?什么是笛卡尔积?
2.Java线程的生命周期?有几种状态?
3.Java多线程编程时有哪几种线程间通信方式?
4.Object类中的object.wait(),object.notify()方法使用场景?内部实现细节?使用时需要synchronized关键字配合吗?什么时候会释放对象锁?什么时候申请锁?
5.讲一下研究生阶段的项目经历
6.手撕代码:给一个二维数组arr[][],二维数组的每一行的长度是不固定的,具体每行的长度存储在一维数组int len[]中(例如:len[0]=3,代表arr数组的第0行有3个元素),arr数组的总行数为size,实现一个函数func(int[][] arr,int[] len,int size);要求对arr数组每行选一个元素,输出所有可能的组合。
7.提问环节
原本二面结束继续线上等待三面,可是5分钟后HR打电话说三面面试官在开会,就重新约了第二天下午4点面试。
三面:
全部评论
(13) 回帖