两年经验社招Java面试
1、手撕代码。牛客题霸上的原题,可以去看看:NC8 二叉树根节点到叶子节点和为指定值的路径
2、HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。
3、HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。
4、HashMap,HashTable,ConcurrentHashMap的区别。
5、极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。
6、HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。
7、java中四种修饰符的限制范围。
8、数据结构和算法:B+树,快速排序、堆排序、插入排序(建议八大排序算法都应该去了解一下)
9、JVM的内存结构。
10、JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
11、JVM的栈中引用如何和堆中的对象产生关联。
12、可以了解一下逃逸分析技术。
13、GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
14、标记清除和标记整理算法的理解以及优缺点。
15、eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。
16、Java实现多线程有哪几种方式。
17、Callable和Future的了解。
18、线程池的参数有哪些,在线程池创建一个线程的过程。
19、volitile关键字的作用,原理。
20、synchronized关键字的用法,优缺点。
21、Lock接口有哪些实现类,使用场景是什么。
22、常见的数据库优化手段
23、索引的优缺点,什么字段上建立索引
24、TCP,UDP区别。
25、三次握手,四次挥手,为什么要四次挥手。
26、设计模式:观察者模式、代理模式
27、分布式事务的控制。
28、分布式锁如何设计。
29、分布式session如何设计。
30、redis和memcached的区别。
31、redis支持哪些数据结构。
32、redis是单线程的么,所有的工作都是单线程么。
33、redis如何存储一个String的。
34、SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。
35、Mybatis如何找到指定的Mapper的,如何完成查询的。
36、Quartz是如何完成定时任务的?
#社招##面经##Java工程师#