G1(Garbage First)是 JDK 9+ 的默认垃圾收集器,通过 Region 分区设计从根本上解决了 CMS 的内存碎片问题,并实现了可预测的停顿时间控制。
2026/4/22...大约 14 分钟
G1(Garbage First)是 JDK 9+ 的默认垃圾收集器,通过 Region 分区设计从根本上解决了 CMS 的内存碎片问题,并实现了可预测的停顿时间控制。
基于 JDK 8+ 的 JVM 类加载机制深度解析。

类加载是指将 .class 文件中的字节码读入内存,并为之创建对应的运行时数据结构的过程。
基于 JDK 8+ 的 JVM 对象创建过程与内存布局深度解析。

当执行 new Demo() 时,JVM 会依次执行以下步骤:
new Demo()
│
┌─────────────┴─────────────┐
│ 1. 类加载检查 │
├───────────────────────────┤
│ 2. 分配内存 │
├───────────────────────────┤
│ 3. 初始化零值 │
├───────────────────────────┤
│ 4. 设置对象头 │
├───────────────────────────┤
│ 5. 执行 <init> 方法 │
└───────────────────────────┘
│
▼
对象创建完成
基于 JDK 8+ 的 JVM 垃圾回收机制深度解析。

GC 要解决三个核心问题:
| 问题 | 说明 |
|---|---|
| 哪些内存需要回收? | 判断对象是否存活 |
| 什么时候回收? | GC 触发时机 |
| 如何回收? | 垃圾回收算法和收集器 |
基于 JDK 8+ 的 JVM 运行时数据区深度解析。

一句话总结:堆管存储,栈管运行。
基于 JDK 1.8+ 的 synchronized 关键字深度解析。
synchronized 是什么?
Java 内置的关键字,用于实现线程同步,本质是对象锁(Monitor Lock)。
提供的三大特性:
| 特性 | 说明 |
|---|---|
| 原子性 | 同步块内的操作要么全部执行,要么全部不执行 |
| 可见性 | 释放锁时,将工作内存刷回主内存;获取锁时,从主内存重新读取 |
| 有序性 | 同一时刻只有一个线程执行同步块,表现为串行 |