View on GitHub

JVMByteCodeGitBook

《Java虚拟机字节码:从入门到实战》第二版《深入浅出JVM字节码》开源电子书。这本书详细介绍ASM框架的API、Class文件结构解析、HotSpot虚拟机类加载源码分析、动态代理与字节码插桩的实现。

框架简介

ASM是一个非常小且快速的java字节码操作框架。除ASM外,javassist也是一个非常热门的字节码操作框架,很多人也喜欢拿这两个框架进行比较。javassist的主要优点是简单,使用javassist不需要了解class文件结构,也不需要了解字节码指令,就能动态改变类的结构或生成类,但这同时也是缺点,这种简单带来了局限性,也导致性能降低。而ASM恰好与之相反,使用ASM需要了解底层,对使用者有一定的门槛,但ASM没有局限,我们完全可以使用ASM编写任意一个能用Java代码编写的类。

由于类只动态生成或改写一次,因此性能可能并不是我们考虑的最大因素,但ASM能实现的功能更多,可玩性更强,ASM使用访问者模式并提供非常丰富的API简化我们的开发。


发布于:2021 年 10 月 10 日
作者: 吴就业
GitHub链接:https://github.com/wujiuye/JVMByteCodeGitBook
链接: https://www.wujiuye.com/ebook/JVMByteCodeGitBook/chapter/chapter05_01.md
来源: Github Pages 开源电子书《深入浅出JVM字节码》(《Java虚拟机字节码从入门到实战》的第二版),未经作者许可,禁止转载!