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 源码、字节码:
