专业的JAVA编程教程与资源

网站首页 > java教程 正文

虚拟机字节码操作黑科技工具简介

temp10 2025-01-07 15:58:16 java教程 11 ℃ 0 评论

Java程序是运行在JVM虚拟机之上的,JVM执行字节码指令使应用程序运行起来。通过在JVM虚拟机上运行字节码使得Java程序实现跨平台,一次编译多次运行。

为什么要操作Java虚拟机字节码

虚拟机字节码操作黑科技工具简介

在系统运行时经常需要动态增强应用能力,但是Java语言属于静态编译语言,不能动态更新,如果需要增强功能需要修改代码重新编译。如果不想编译代码那么可以通过修改字节码添加动态代理能力。基于修改字节码的使用场景常见于AOP动态代理,APM数据采集,系统运行诊断等。许多开源项目中使用动态修改字节码技术实现能力增强,如Spring、Arthas。

操作Java虚拟机字节码常见利器

目前常用的操作JVM虚拟机字节码的框架有ASM、Javassist、Byte buddy、BCEL、ByteKit。

1、ASM

一个非常小且快速的字节码操作框架。性能高适合在动态系统中使用。大名鼎鼎的CGLIB就基于ASM实现。

2、Javassist

一种使用简单的常用框架,不需要了解class文件结构,也不需要了解字节码指令,就能动态改变类的结构或生成类。使用案例Dubbo。

3、Byte buddy

代码生成和操作库用于在Java应用程序运行时创建和修改Java类无需编译器帮助。使用案例Apache SkyWalking。

4、BCEL

为用户提供一种方便的方法来分析、创建和操作Java类文件。

5、ByteKit

提供一套简洁的API字节码操作工具。阿里开源诊断工具Arthas中大量使用。

JVM字节码操作工具应根据实际需求进行选择。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表