基于 JDK 8+ 的 JVM 类加载机制深度解析。
一、类加载概述

1.1 什么是类加载
类加载是指将 .class 文件中的字节码读入内存,并为之创建对应的运行时数据结构的过程。
2025/12/21...大约 8 分钟
基于 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)。
提供的三大特性:
| 特性 | 说明 |
|---|---|
| 原子性 | 同步块内的操作要么全部执行,要么全部不执行 |
| 可见性 | 释放锁时,将工作内存刷回主内存;获取锁时,从主内存重新读取 |
| 有序性 | 同一时刻只有一个线程执行同步块,表现为串行 |