JVM
前言
概述
Write once, run anywhere
JAVA源码编译机制
JAVA源码编译过程
分析和输入到符号表
注解处理
语义分析和生成class文件
类执行机制
字节码解释执行
栈顶缓存
部分栈帧共享
编译执行
C1与C2编译器
AOT
编译优化
字符串优化
方法内联
逃逸分析
同步消除
标量替换
栈上分配
去虚拟化/逆优化
多层编译
JVM编译策略
OSR编译
冗余削除
JVM运行时数据区
程序计数器
JAVA虚拟机栈
栈帧
局部变量表
操作数栈
本地方法栈
堆-Heap
方法区(Method Area)
运行时常量池
常量传播优化
直接内存
JVM Stacks && Native Stacks
StackOverflowError
递归方法
OutOfMemoryError
本地内存溢出
知识点
执行引擎
运行时数据区关联关系
内存模型
JAVA内存模型
内存屏障
指令重排
as-if-serial语义
Happen-Before规则
数据依赖性
虚拟机对象
对象创建原理
对象内存布局
对象头
实例数据
对象的访问定位
垃圾收集器与内存分配策略
JVM GC工作原理
内存管理
JAVA引用分类
死亡标记
回收方法区
三色标记算法
垃圾收集算法
标记-清除算法
复制算法
标记-整理算法
分代收集算法
HotSpot算法实现
STW
垃圾收集器
Serial收集器
ParNew收集器
Parallel Scavenge收集器
Serial Old收集器
Parallel Old收集器
CMS收集器
CMS完整收集过程
G1收集器
GC日志
GC策略的评价指标
jvm card table数据结构
类文件结构
魔数
版本号
常量池
访问标志
父类索引
接口集合
字段集合
方法集合
属性集合
类加载机制与类的初始化
类加载过程
常见类加载器
BootstrapClassLoader
抽象类ClassLoader
双亲委派模型
Tomcat类加载机制
ServiceLoader
类的初始化
常见的JVM类加载异常
ClassNotFoundException
NoClassDefFoundError
LinkageError
ClassCastException
虚拟机性能调优监控与故障处理工具
jvm参考配置
jvm-jstat
jvm-jmap
内存溢出和内存泄露
jvm-jstack
JVM关闭
Shutdown Hook
JVM指令
附录
常用JVM指令
Class文件版本号
Class文件格式
方法访问标识
jvm常量池
类或接口的访问标识
描述符标识字符含义
字段访问标识
Powered by
GitBook
ClassNotFoundException
results matching "
"
No results matching "
"