Skip to content

zhangzb040630/JVM-Bytecode_Analysis-From_Shallow_To_Deep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📘 JVM由浅入深_字节码级别分析

License Java Stars

由浅入深剖析 JVM 底层原理与 Java 字节码📚,内容囊括运行时内存分区结构🧩、垃圾回收算法与各类 GC 收集器♻️、双亲委派类加载机制🔄、Class 文件结构📄、字节码指令详解⌨️、JIT 即时编译⚡等核心知识点,搭配大量源码阅读、代码调试、字节码实操案例💻,理论结合落地实践,循序渐进吃透 JVM 底层实现逻辑。


📖 简介

本项目是我从0到1学习 Java 虚拟机(JVM)过程中整理的一份完整笔记,基于 HotSpot 虚拟机,结合视频课程、技术文章、ai以及大量实战案例,以文字讲解、图解、源码、字节码的形式,带你深度剖析 JVM,避免少踩坑、少走弯路。

笔记内容包括但不限于:

  • JVM 内存结构(堆、栈、方法区、程序计数器等)
  • 垃圾回收(GC)原理、算法与回收器(Serial、Parallel、CMS、G1)
  • 类加载机制(加载、链接、初始化、类加载器、双亲委派)
  • 字节码与编译期优化(泛型、枚举、匿名内部类、try-with-resources)
  • JMM 内存模型(原子性、可见性、有序性、volatile、CAS)
  • 反射、JIT、逃逸分析、方法内联等高级特性

🗂️ 笔记结构

├── 一.JVM定义与特点
├── 二.学习路线与虚拟机选型
├── 三.JVM内存结构
│   ├── 程序计数器
│   ├── 虚拟机栈(栈帧、逃逸分析、栈溢出)
│   ├── 本地方法栈
│   ├── 堆(内存溢出、诊断工具)
│   ├── 方法区(常量池、StringTable)
│   └── 直接内存(NIO、Unsafe、内存释放)
├── 四.GC垃圾回收
│   ├── 垃圾判断算法(可达性分析、引用类型)
│   ├── 垃圾回收算法(标记-清除、标记-整理、标记-复制)
│   ├── 分代回收机制
│   └── 垃圾回收器(Serial、Parallel、CMS、G1)
├── 五.GC调优实战
├── 六.类加载与字节码
├── 七.编译期处理(语法糖)
├── 八.类加载阶段与类加载器
├── 九.运行期优化(JIT、逃逸分析、内联)
└── 十.JMM内存模型(可见性、有序性、CAS)

✅ 适用人群

  • ✅ 有一定 Java 基础,希望深入理解 JVM 的开发者
  • ✅ 准备 Java 面试中高级的求职者
  • ✅ 对 GC 调优、性能优化感兴趣的工程师
  • ✅ 希望系统学习 JVM ,但无从下手记笔记的学者

🚀 如何使用

笔记为 Markdown 格式,推荐使用以下工具阅读:

  • Typora(推荐)
  • VS Code + Markdown Preview Enhanced
  • GitHub / Gitee 在线预览

在线查看


📌 笔记特色

  • 图文并茂:关键概念配有流程图、结构图、字节码截图
  • 案例驱动:每个知识点都配有可运行的代码示例
  • 字节码级别分析:深入 javap、HSDB、JIT 编译等底层细节
  • 面试导向:涵盖高频面试题,如:
    • String s = new String("a") + new String("b") 创建了几个对象?
    • i++ 是线程安全的吗?为什么?
    • volatile 是如何保证可见性与有序性的?
    • synchronized 的锁升级过程是怎样的?
    • G1 是如何实现可预测停顿的?

🤝 贡献与反馈

由于本人水平有限,笔记中可能存在理解不准确或表述不清晰的地方,欢迎通过 Issue 或 PR 提出建议。

如果你觉得这份笔记对你有帮助,欢迎 ⭐️ Star 支持一下~

About

由浅入深剖析 JVM 底层原理与 Java 字节码📚,内容囊括运行时内存分区结构🧩、垃圾回收算法与各类 GC 收集器♻️、双亲委派类加载机制🔄、Class 文件结构📄、字节码指令详解⌨️、JIT 即时编译⚡等核心知识点,搭配大量源码阅读、代码调试、字节码实操案例💻,理论结合落地实践,循序渐进吃透 JVM 底层实现逻辑。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors