Java|这份Java面试八股文让329人成功进入大厂,堪称2022最强( 三 )


24. Collection 和 Collections 有什么区别?












四、Java并发 42 道






1. 并行和并发有什么区别?
2. 线程和进程的区别?
3. 守护线程是什么?
4. 创建线程的几种方式?
5. Runnable 和 Callable 有什么区别?
6. 线程状态及转换?
7. sleep() 和 wait() 的区别?
8. 线程的 run() 和 start() 有什么区别?
9. 在 Java 程序中怎么保证多线程的运行安全?
10. Java 线程同步的几种方法?
11. Thread.interrupt() 方法的工作原理是什么?
12. 谈谈对 ThreadLocal 的理解?
13. 在哪些场景下会使用到 ThreadLocal?
14. 说一说自己对于 synchronized 关键字的了解?
15. 如何在项目中使用 synchronized 的?
16. 说说 JDK1.6 之后的 synchronized 关键字底层做了哪些优化 , 可以详细介绍一下这些优化吗?
17. 谈谈 synchronized 和 ReenTrantLock 的区别?
18. synchronized 和 volatile 的区别是什么?
19. 谈一下你对 volatile 关键字的理解?
20. 说下对 ReentrantReadWriteLock 的理解?
21. 说下对悲观锁和乐观锁的理解?
22. 乐观锁常见的两种实现方式是什么?
23. 乐观锁的缺点有哪些?
24. CAS 和 synchronized 的使用场景?
25. 简单说下对 Java 中的原子类的理解?
26. atomic 的原理是什么?
27. 说下对同步器 AQS 的理解?
28. AQS 的原理是什么?
29. AQS 对资源的共享模式有哪些?
30. AQS 底层使用了模板方法模式 , 你能说出几个需要重写的方法吗?
31. 说下对信号量 Semaphore 的理解?
32. CountDownLatch 和 CyclicBarrier 有什么区别?
33. 说下对线程池的理解?为什么要使用线程池?
34. 创建线程池的参数有哪些?
35. 如何创建线程池?
36. 线程池中的的线程数一般怎么设置?需要考虑哪些问题?
37. 执行 execute() 方法和 submit() 方法的区别是什么呢?
38. 说下对 Fork和Join 并行计算框架的理解?
39. JDK 中提供了哪些并发容器?
40. 谈谈对 CopyOnWriteArrayList 的理解?
41. 谈谈对 BlockingQueue 的理解?分别有哪些实现类?
42. 谈谈对 ConcurrentSkipListMap 的理解?









五、Java JVM 42 道






1. 说一下 Jvm 的主要组成部分?及其作用?
2. 谈谈对运行时数据区的理解?
3. 堆和栈的区别是什么?
4. 堆中存什么?栈中存什么?
5. 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
6. Java 中的参数传递时传值呢?还是传引用?
7. Java 对象的大小是怎么计算的?
8. 对象的访问定位的两种方式?
9. 判断垃圾可以回收的方法有哪些?