书名
《实战JAVA虚拟机-JVM故障诊断与性能优化》
简介
作者:葛一鸣
内容:书籍通过200余例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控及性能优化
章节(共11章)
第1~3章:Java虚拟机的定义、总体架构、常用配置参数。
第4~5章:垃圾回收的算法和各种垃圾回收器。
第6章:Java虚拟机的性能监控和故障诊断工具。
第7章:Java堆的分析方法和案例。
第8章:Java虚拟机多线程、锁。
第9~10章:Java虚拟机核心-Class文件结构、类装载系统。
第11章:Java虚拟机执行系统和字节码。
核心内容
本书内容较多,主要分享下最核心也是最感兴趣的部分第9~10章——Class文件结构及类装载系统。
Class文件
对于Java虚拟机来说,Class文件是一个重要接口。无论使用何种语言开发,只要能将源文件(你写的代码)编译为Class文件,那么这种语言就可以在虚拟机上执行。可以说,Class文件就是Java虚拟机的基石。
特性:平台无关性、语言无关性
结构:Class文件的基本结构并不是一成不变的,会随着虚拟机版本的不同而有所调整。
根据Java虚拟规范的定义,一个Class文件可以非常严谨的被描述为:
ClassFile {
u4 magic; //魔数。固定: OxCAFEBABE,标识这是一个Class文件
u2 minor_version; //大版本号
u2 major_version; //小版本号
u2 constant_pool_count; //常量池个数
cp_info constant_pool[constant_pool_count-1]; //常量池表项
u2 access_flags; //访问修饰符
u2 this_class; //自身类引用
u2 super_class; //父类引用
u2 interfaces_count;