JVM笔记大纲
# JVM笔记
# 概述
这里归档了关于Java虚拟机的学习笔记或文章,笔记主要来源为:
尚硅谷宋红康JVM全套教程(详解java虚拟机) (opens new window)
- JVM从入门到精通 (opens new window),这个是另一个博主对上面教程做的笔记,更加接近原版教程
- 官方公众号资料:下载链接:https://pan.baidu.com/s/1-EqdKhISTwEqto_14FrlQw ,提取码:mx3i
周志明老师的《深入理解Java虚拟机-JVM高级特效与最佳实践(第3版)》。
笔记根据个人的学习过程、思考,会有所修改、调整。
# 走近Java
- JVM前言 (opens new window)
- Java与JVM简介 (opens new window)
- JVM的架构模型 (opens new window)
- JVM生命周期 (opens new window)
- Java的发展重大事件 (opens new window)
- JVM家族 (opens new window)
- 实战自己编译JDK
# 内存与垃圾回收
Java与C++之间有一堵动态分配和垃圾收集技术所围成的高墙,墙外的人想进去,墙里面的人想出来。
Java的自动内存管理机制学习JVM的重要一节。JVM是java程序的内存管理的“皇帝”,了解虚拟机如何管理内存,方便java程序员检查内存泄漏和内存溢出方面的问题。这一部分核心内容为内存区的划分与垃圾收集器技术,也是面试常考的知识点。
- JVM内存结构图 (opens new window)
- 类加载器子系统 (opens new window)
- 运行时数据区 (opens new window)
- 程序计数器(PC寄存器) (opens new window)
- 虚拟机栈 (opens new window)
- 本地方法栈 (opens new window)
- 堆 (opens new window)
- 方法区 (opens new window)
- 对象的实例化 (opens new window)
- 直接内存 (opens new window)
- 执行引擎 (opens new window)
- String Table (opens new window)
- 垃圾回收概述 (opens new window)
- 垃圾回收相关概念 (opens new window)
- 垃圾回收算法 (opens new window)
- 垃圾收集器 (opens new window)
# 字节码与类加载
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,确实编程语言发展的一大步。
各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式——字节码(Byte Code)是构成平台无关性的基石。
- JVM基石:class文件 (opens new window)
- class文件结构 (opens new window)
- javap解析class文件 (opens new window)
- 字节码指令集 (opens new window)
- 类的加载过程 (opens new window)
- 再谈类的加载过程 (opens new window)
- 附:字节码文件结构手册 (opens new window)
- 附:字节码指令手册 (opens new window)
# 性能监控与调优
理论总是作为实践指导的工具,把这些知识应用到实际工作中才是我们的最终目的。
工具永远是知识技能的一层包装,没有什么工具是“秘密武器”,拥有了就能“包治百病”。
- 概述 (opens new window)
- JVM监控及诊断工具-命令行篇 (opens new window)
- JVM监控及诊断工具-GUI篇 (opens new window)
- JVM运行时参数 (opens new window)
- GC日志分析 (opens new window)
- 浅堆深堆与支配树 (opens new window)
- 内存泄漏与内存溢出 (opens new window)
- QQL语言查询对象信息 (opens new window)
# 监控与调优案例
除了知识与工具外,经验同样是一个很重要的因素。
- 概述 (opens new window)
- Tomcat堆溢出分析 (opens new window)
- 堆溢出 (opens new window)
- 方法区溢出 (opens new window)
- GC overhead limit exceeded (opens new window)
- 线程溢出 (opens new window)
- 调整堆大小提高服务的吞吐量 (opens new window)
- JVM优化之JIT优化 (opens new window)
- 合理配置堆内存 (opens new window)
- CPU占用很高排查方案 (opens new window)
- G1并发执行的线程数对性能的影响 (opens new window)
- 调整垃圾回收器提高服务的吞吐量 (opens new window)
- 日均百万级订单交易系统如何设置JVM参数 (opens new window)
上次更新: 5/28/2023, 10:57:53 PM