20200730 尚硅谷 JVM【归档】
尚硅谷 JVM【归档】
学习历程
时间
视频时间:2020-1
学习时间:2020-6-25
- 2020-7-30
技术版本
笔记版本:jdk-8u151
背景
Java 程序员是绕不开 JVM 的。
后续
2022年6月5日
2020 年学习了上篇,2022 年学习了中篇和下篇。
还有部分收费内容,没有学习
JVM 整体架构
课程安排、学习的整体思路
- 上篇:执行引擎、内存的结构与分配、垃圾回收算法与垃圾回收器
- 中篇:class 文件结构、类的加载、执行引擎
- 下篇:性能监控、性能优化
目录
上篇
- 01 - JVM 与 Java 体系结构
- 02 - 类加载子系统
- 03 - 运行时数据区概述及线程
- 04 - 程序计数器
- 05 - 虚拟机栈
- 06 - 本地方法接口
- 07 - 本地方法栈
- 08 - 堆
- 09 - 方法区
- 10 - 对象的实例化内存布局与访问定位
- 11 - 直接内存
- 12 - 执行引擎
- 13 - String Table
- 14 - 垃圾回收概述
- 15 - 垃圾回收相关算法
- 16 - 垃圾回收相关概念
- 17 - 垃圾回收器
中篇
- 第 1 章:Class 文件结构
- 1.1. 概述
- 1.2. 虚拟机的基石:Class 文件
- 1.3. Class 文件结构
- 1.4. 使用
javap
指令解析 Class 文件
- 第 2 章:字节码指令集与解析举例
- 2.1. 概述
- 2.2. 加载与存储指令
- 2.3. 算数指令
- 2.4. 类型转换指令
- 2.5. 对象的创建与访问指令
- 2.6. 方法调用与返回指令
- 2.7. 操作数栈管理指令
- 2.8. 控制转义指令
- 2.9. 异常处理指令
- 2.10. 同步控制指令
- 第 3 章:类的加载过程(类的生命周期)详解
- 3.1. 概述
- 3.2. 过程一:Loading(加载)阶段
- 3.3. 过程二:Linking(链接)阶段
- 3.4. 过程三:Intialization(初始化)阶段
- 3.5. 过程四:类的 Using(使用)
- 3.6. 过程五:类的 Unloading(卸载)
- 第 4 章:再谈类的加载器
- 4.1. 概述
- 4.2. 复习:类的加载器分类
- 4.3. 测试不同的类加载器
- 4.4. ClassLoader 源码解析
- 4.5. 双亲委派模型
- 4.6. 沙箱安全机制
- 4.7. 自定义类的加载器
- 4.8. Java 9 新特性
下篇
- 第 1 章:概述篇
- 1.1. 大厂面试题
- 1.2. 背景说明
- 1.3. 调优概述
- 1.4. 性能优化的步骤
- 1.5. 性能评价/测试指标
- 第 2 章:JVM 监控及诊断工具-命令行篇
- 概述
jps
:查看正在运行的 Java 进程jstat
:查看 JVM 统计信息jinfo
:实时查看和修改 JVM 配置参数jmap
:导出内存映像文件 & 内存使用情况jhat
:JDK 自带堆分析工具jstack
:打印 JVM 中线程快照jcmd
:多功能命令行jstatd
:远程主机信息收集
- 第 3 章:JVM 监控及诊断工具-GUI 篇
- 工具概述
- JConsole
- Visual VM
- Eclipse MAT
- JProfiler
- Arthas
- Java Misssion Control
- 其他工具
- 第 4 章:JVM 运行时参数
- JVM 参数选项
- 添加 JVM 参选项
- 常用的 JVM 参数选项
- 通过 Java 代码获取 JVM 参数
- 第 5 章:分析 GC 日志
- GC 日志参数
- GC 日志分析工具