JVM(一)- 基本结构和总览
目录
之前看完《深入理解Java虚拟机》第二版之后觉得收获很大,现在第三版都出来了,书更厚并且增加了很多Java8等的东西,比如成熟的G1垃圾收集器的东西。结合《实战Java虚拟机》的东西,觉得该对这方面进行一些总结了,之前觉得有点杂乱无从下手。后面看到了JVM的结构图,觉得应该从结构图下手。详细可以从整体查看深入理解Java虚拟机
本来想先从虚拟机加载子系统开始的,按照Jvm启动,类加载,内存布局、到垃圾回收,一切跑起来后再进行性能优化。但是发现虚拟机执行子系统中类结构和加载的依赖对运行时数据区的理解。所以按照下面的顺序开始
1、内存自动管理
1)、运行时数据区5大模块(黄色背景部分)
2)、内存布局分配
3)、垃圾收集判断的理论
4)、垃圾回收器类型和运行机制
5)、运行监控,即jvm提供的查询命令
2、虚拟机执行子系统
1)、类文件结构
2)、字节码指令了解
3)、类加载机制和双亲委派模型
4)、方法执行过程分析,即压栈、数据获取、存储、计算等
5)、类加载机制的实践(Tomcat、动态代理)
3、JVM与多线程(或者高并发)的重合部分
1)、Jmm模型
2)、锁升级和对象头
3)、原子性、可见性和有序性
4)、现行发生原则(happen-before)
5)、线程和锁
4、调优实战、常用参数等
1)、编译期的语法糖(不要掉坑里,直接在写代码是息息相关)
2)、常用参数
3)、gc日志
4)、可视化分析工具