一、class 文件格式
一个 class 文件由一个 ClassFile
结构表示,如下图:
上述图中,所有字段存储了 class file 中的所有内容。
下面简单查看各个字段所代表的含义
点击查看【processon】
二、借助代码和工具简单观察 class file
java 版本
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
2.1、代码准备
2.1.1、原始测试代码
package com.zhixing;
/**
* <p> class file format 查看 案例</p>
*
* @author zhixing
*/
public class Demo {
private int age ;
private int name;
public int getName(){
return this.name;
}
}
2.1.2、Javac
将代码编译成 class 文件
javac Demo.java
2.2、直接查看 class 文件
直接使用
sublime/text
打开
2.2.1、魔数(0xCAFEBABE)
magic = 0xCAFEBABE
是class 文件格式的校验头部。对应 Demo.class
文件16进制内容如下
2.2.2、版本号
版本号 = major.minor = 52.0
JDK1.8 默认版本:52.0
2.2.3、以此类推
2.3、借助工具查看 class 文件
借助 idea 插件
jclasslib-bytecode-viewer
可视化查看 class file format 信息 进入源码:【View -> show bytecode with jclasslib】
上述描述了 class file format 各个字段描述信息