Java asm标准用于什么?

Java asm标准用于什么?,java,jar,Java,Jar,有时我会在名称文件库jar中看到字母“asm” 例如,在包框架库中 SpringFramework : org.springframework.asm-x.y.z.M(a).jar Eclipse Link : org.eclipse.persistence.asm.jar < > >代码> ASM,它是什么意思?< /P> < P> ASM简单地代表 ASMeTever工具 > /p> 最可能是对汇编(语言)的引用,因为如果我们把字节码看作java的机器代码,那么这样的库将有

有时我会在名称文件库jar中看到字母“
asm

例如,在包框架库中

SpringFramework  :  org.springframework.asm-x.y.z.M(a).jar 
Eclipse Link     :  org.eclipse.persistence.asm.jar

< > >代码> ASM<代码>,它是什么意思?< /P> < P> ASM简单地代表<强> ASMeTever工具<强> > /p> 最可能是对汇编(语言)的引用,因为如果我们把字节码看作java的机器代码,那么这样的库将有点类似于x86世界中的ASM编译器。(即,允许您以更简单的方式编写机器/字节码)。

您提到的两个库都是的副本,它提供了低级字节码操作功能(ASM->assembly)

Spring和EclipseLink更改ASM的包名并重新打包供其内部使用。这是为了避免这些库的用户希望使用其自己版本的ASM时发生冲突。通过重命名包,两个版本可以愉快地共存。JDK也可以这样做-您可以看到JDK.internal.org.objectweb.ASM.util例如,.asmiger是JDK的一部分。“JDK.internal”前缀用于避免与ASM用户可能希望使用的其他版本发生冲突


ASM名称没有任何意义:它只是对C中的
\uu ASM\uu
关键字的引用,它允许用汇编语言实现某些函数


ASM库的目标是生成、转换和分析已编译的 Java类,表示为字节数组(当它们存储在磁盘上并加载时 为此,ASM提供了用于读取的工具, 使用比字节更高级的概念写入和转换此类字节数组, 例如数值常量、字符串、Java标识符、Java类型、Java类 结构元素等。请注意,ASM库的范围严格 限于阅读、写作、转化和分析课程。特别是 类加载过程超出范围


源代码:

ASM是Java的字节码框架,具有最高效的性能

ASM由cobertura用于代码覆盖,由hibernate和AOP用于生成代理类

还有许多其他API在内部使用ASM来处理java字节码(如您在问题中提到的)


更多信息:

我尝试用关键字搜索,但没有更多相关结果。C中的asm与汇编相关,虽然asm与汇编无关。但它通常意味着汇编。asm库的目标是生成、转换和分析编译的Java类,以字节数组表示(因为它们存储在磁盘上并加载到Java虚拟机中)Src-。ASM名称没有任何意义:它只是对C中的--ASM--(uu下划线)关键字的引用,它允许用汇编语言实现某些函数。来源: