JavaASM-基础-ASM简介
1.ASM是什么?
简单来说,ASM 是一个操作 Java 字节码的类库。它可以用于修改现有的 class 文件或动态生成 class 文件。
众所周知,一个 .java
源文件经过 Java 编译器(javac
) 编译之后会生成一个 .class
文件。在 .class
文件中存储着一定规则的字节码数据(ByteCode),ASM 操作的对象就是字节码,一般情况下,字节码都存在于 .class
文件中。
ASM 首先读取 .class
文件中的字节码数据,按照一定规则解析字节码数据,分解成多个部分,然后对某个或多个部分进行修改,最后再将分解和修改后的部分重新按照规则生成一个新的 .class
文件[1]。