Java 面试笔记,从集合框架到JVM 调优
70 篇文章系统整理 Java 核心知识。从集合框架到底层 JVM,每篇聚焦一个高频面试主题,配套源码解读与典型例题。
Contents
目录
70 篇 · 20 必问
I
集合框架源码
9- 01HashMap 源码精讲:数组+链表+红黑树必问
- 02HashMap 高频面试题全解:null key、遍历顺序、线程安全必问
- 03HashMap vs Hashtable vs LinkedHashMap 横向对比
- 04ConcurrentHashMap 演进:JDK7 分段锁 → JDK8 CAS+synchronized必问
- 05ConcurrentHashMap 深度剖析:put 流程、size 统计与扩容
- 06ArrayList vs LinkedList:从源码看使用场景
- 07ArrayList 扩容机制与性能调优
- 08HashSet 与 TreeSet 底层原理:Map 的「马甲」
- 09Iterator 与 fail-fast:集合遍历的安全边界
II
并发编程
14- 10线程创建五种方式:Thread、Runnable、Callable、线程池、CompletableFuture
- 11线程生命周期:6 种状态与 12 次转换
- 12synchronized 锁升级:偏向锁 → 轻量级锁 → 重量级锁必问
- 13volatile 深入:可见性、有序性与 happens-before必问
- 14CompletableFuture 异步编排:从回调地狱到流式组合
- 15线程池 ThreadPoolExecutor:7 大参数与 4 种拒绝策略必问
- 16AQS 框架与 ReentrantLock:独占锁、公平锁、Condition
- 17读写锁 ReentrantReadWriteLock 与 StampedLock
- 18ThreadLocal 原理与内存泄漏:弱引用的坑必问
- 19并发工具全解:CountDownLatch、CyclicBarrier、Semaphore、Phaser
- 20JMM 内存模型:happens-before 八条规则全解
- 21CAS 与原子操作:AtomicInteger 到 LongAdder
- 22线程安全设计模式:不可变对象、Thread-safe Singleton、生产者-消费者
- 23Fork/Join 框架与并行 Stream
III
JVM 原理与调优
14- 24JVM 堆内存:年轻代三区与老年代的生命周期必问
- 25对象创建全过程:类加载检查 → TLAB → 内存分配 → 初始化
- 26对象存活判定:引用计数 vs 可达性分析
- 27GC Roots 详解:哪些对象不会被回收?必问
- 28GC 日志分析实战:读懂每一行 GC 输出
- 29JVM 调优参数手册:30 个最常用参数速查
- 30内存泄漏排查:Heap Dump + MAT + VisualVM 实战
- 31CPU 100% 排查:top → jstack → 代码定位五步法
- 32类加载机制:双亲委派模型与三种破坏场景必问
- 33自定义类加载器:热部署与模块化隔离
- 34JVM 运行时数据区全景:堆、栈、方法区、程序计数器必问
- 35垃圾收集器全览:Serial → Parallel → CMS → G1 → ZGC
- 36JIT 编译优化:逃逸分析与标量替换
- 37OOM 排查实战:六种 OutOfMemoryError 全解
IV
Java 高级特性
14- 38Lambda 底层实现:invokedynamic 与函数式接口
- 39Stream API 深度使用:map、flatMap、reduce、Collector
- 40泛型深入:擦除机制、通配符 PECS 与桥方法
- 41try-with-resources 底层原理:编译器做了什么?
- 42异常处理最佳实践:自定义异常与全局处理
- 43受检 vs 非受检异常:设计哲学与选型
- 44接口进化:默认方法、静态方法与私有方法
- 45注解体系:元注解、自定义注解与运行时处理
- 46反射原理:性能开销分析与 Spring IoC 中的应用
- 47面试必会设计模式:单例、工厂、策略、观察者、模板方法必问
- 48IO 模型:BIO、NIO 与 Reactor 模式
- 49序列化机制:Serializable、transient 与 serialVersionUID
- 50四种引用类型:强引用、软引用、弱引用、虚引用
- 51Java 8 → 21 核心特性速览:var、record、sealed、虚拟线程
V
Spring 生态核心原理
8- 52Spring IoC 容器原理:BeanFactory 与 ApplicationContext必问
- 53Spring AOP 原理:JDK 动态代理 vs CGLIB必问
- 54Bean 生命周期:从实例化到销毁的完整流程
- 55Spring 事务传播机制与 @Transactional 失效的 8 种场景必问
- 56Spring Boot 自动装配:@EnableAutoConfiguration 原理
- 57Spring 循环依赖:三级缓存解决方案
- 58Spring MVC 请求处理全流程:DispatcherServlet 到 View
- 59Spring 核心注解速查:@Autowired vs @Resource、@Component vs @Bean
VI
数据库与中间件实战
6VII
分布式系统设计
5☕ 开始你的 Java 进阶之旅!
建议从集合框架开始,这是所有 Java 开发者的基本功。掌握底层原理,面试和工作都能游刃有余。