1、你对Java的哪一块是比较了解的,例如Java的体系等;
2、栈和堆的区别;
3、写一个方法使栈溢出,怎么写(为啥是递归不是循环,如果循环调用一个方法,会不会导致栈溢出);
4、什么情况下会进行垃圾回收,空间比较少时,哪些对象会回收?
5、HashMap怎么找到value值,为啥要使用数组和链表;
6、冒泡排序的实现原理;
7、并发的情况下,对公用变量进行操作时,怎么保证没有并发问题(怎么加锁,synchronized和lock加锁的区别);
8、wait和sleep属于哪个对象的方法(哪一个是属于线程的);
9、联合索引是怎么实现的(ABC三个字段建立的一个索引);
10、TCP/IP协议的了解(一个Web请求,整个数据传输过程);
11、网络编程、网络通信(socket怎么做的);
12、阻塞式网络通信和非阻塞式网络通信区别;
13、Java哪方面是你的优势,目前没有询问到的;
14、一般会在什么情况下会使用链表(什么是队列);
15、Java面向对象解决了什么问题,有什么优势;
面试官总结:没有找到特别深的地方,理解特别深的地方;数据库的索引这些地方是一定要知道的;
经验:
(1)需要听完面试官的题目再进行作答,不要抢话;
(2)面试过程中语气词太多;
(3)有学长介绍经验说需要将面试官引向自己熟悉的领域,而不是引向一个不熟悉的领域;
(4)面试时需要组织好语言再回答,感觉这次逻辑不好;