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





二、Java异常 9 道



1. finally 块中的代码什么时候被执行?2. finally 是不是一定会被执行到?3. try-catch-finally 中 , 如果 catch 中 return 了 , finally 还会执行吗?4. try-catch-finally 中那个部分可以省略?5. Error 和 Exception 的区别?6. 运行时异常与受检异常有何异同?7. throw 和 throws 的区别?8. 常见的异常类有哪些?9. 主线程可以捕获到子线程的异常吗?
三、Java集合 24 道



1. Java 中常用的容器有哪些?2. ArrayList 和 LinkedList 的区别?3. ArrayList 实现 RandomAccess 接口有何作用?为何 LinkedList 却没实现这个接口?4. ArrayList 的扩容机制?5. Array 和 ArrayList 有何区别?什么时候更适合用 Array?6. HashMap 的实现原理/底层数据结构?JDK1.7 和 JDK1.87. HashMap 的 put 方法的执行过程?8. HashMap 的 get 方法的执行过程?9. HashMap 的 resize 方法的执行过程?10. HashMap 的 size 为什么必须是 2 的整数次方?11. HashMap 多线程死循环问题?12. HashMap 的 get 方法能否判断某个元素是否在 map 中?13. HashMap 与 HashTable 的区别是什么?14. HashMap 与 ConcurrentHashMap 的区别是什么?15. HashTable 和 ConcurrentHashMap 的区别?16. ConcurrentHashMap 的实现原理是什么?17. HashSet 的实现原理?18. HashSet 怎么保证元素不重复的?19. LinkedHashMap 的实现原理?20. Iterator 怎么使用?有什么特点?21. Iterator 和 ListIterator 有什么区别?22. Iterator 和 Enumeration 接口的区别?23. fail-fast 与 fail-safe 有什么区别?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 的理解?