Java源文件(*.java
)通过编译后会变成class文件
,class文件
有固定的二进制格式,class文件
的结构在JVM虚拟机规范第四章:The class File Format中有详细的说明。本章节将学习class文件结构
、class文件解析
、class文件反编译
以及ASM字节码库
。
Java语言和JVM虚拟机规范:《Java15语言规范》、《Java15虚拟机实现规范》
示例代码TestHelloWorld:
package com.anbai.sec.classloader;
/**
* Creator: yz
* Date: 2019/12/17
*/
public class TestHelloWorld {
public String hello() {
return "Hello World~";
}
}
TestHelloWorld.java编译解析流程:
TestHelloWorld.java 源码、字节码: