【剑指Offer学习】【所有面试题汇总】
阿里P8架构师总结Java并发面试题(精选)
一、Java基础
面试/笔试第五弹 —— Java面试问题集锦(下篇)
算法相关
java8 统计字符串字母个数的几种方法(有你没见到过的)
必须知道的八大种排序算法【java实现】(一) 冒泡排序、快速排序
序列化和反序列化的底层实现原理是什么?
1、List 和 Set 的区别
2、HashSet 是如何保证不重复的
3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?
4、HashMap 的扩容过程
5、HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?
6、final finally finalize
7、强引用 、软引用、 弱引用、虚引用
8、Java反射
9、Arrays.sort 实现原理和 Collection 实现原理
10、LinkedHashMap的应用
11、cloneable接口实现原理
12、异常分类以及处理机制
13、wait和sleep的区别
14、数组在内存中如何分配
二、Java并发
面试/笔试第四弹 —— 多线程面试问题集锦
1、synchronized 的实现原理以及锁优化?
深入理解Java并发之synchronized实现原理
深入分析synchronized的实现原理
2、volatile 的实现原理?
全面理解Java内存模型(JMM)及volatile关键字
3、Java 的信号灯?
Java线程(九):Semaphore-信号灯机制
4、synchronized 在静态方法和普通方法的区别?
5、怎么实现所有线程在等待某个事件的发生才会去执行?
6、CAS?CAS 有什么缺陷,如何解决?
7、synchronized 和 lock 有什么区别?
8、Hashtable 是怎么加锁的 ?
9、HashMap 的并发问题?
HashMap多线程并发问题分析
10、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树?
11、AQS
12、如何检测死锁?怎么预防死锁?
多线程死锁的产生以及如何避免死锁
13、Java 内存模型?
到此相信我们对Java内存模型和volatile应该都有了比较全面的认识,总而言之,我们应该清楚知道,JMM就是一组规则,这组规则意在解决在并发编程可能出现的线程安全问题,并提供了内置解决方案(happen-before原则)及其外部可使用的同步手段(synchronized/volatile等),确保了程序执行在多线程环境中的应有的原子性,可视性及其有序性。
14、如何保证多线程下 i++ 结果正确?
15、线程池的种类,区别和使用场景?
线程池的种类,区别和使用场景
16、分析线程池的实现原理和线程的调度过程?
17、线程池如何调优,最大数目如何确认?
18、ThreadLocal原理,用的时候需要注意什么?
19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别?
CyclicBarrier和CountDownLatch区别
20、LockSupport工具
浅谈Java并发编程系列(八)—— LockSupport原理剖析
21、Condition接口及其实现原理
java condition使用及分析
22、Fork/Join框架的理解