美文网首页
JAVA中ASM是什么?

JAVA中ASM是什么?

作者: Midlet | 来源:发表于2017-03-07 10:07 被阅读668次
什么是 ASM ?

ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。

ASM 能够通过改造既有类,直接生成需要的代码。增强的代码是硬编码在新生成的类文件内部的,没有反射带来性能上的付出。同时,ASM 与 Proxy 编程不同,不需要为增强代码而新定义一个接口,生成的代码可以覆盖原来的类,或者是原始类的子类。它是一个普通的 Java 类而不是 proxy 类,甚至可以在应用程序的类框架中拥有自己的位置,派生自己的子类。

相比于其他流行的 Java 字节码操纵工具,ASM 更小更快。ASM 具有类似于 BCEL 或者 SERP 的功能,而只有 33k 大小,而后者分别有 350k 和 150k。同时,同样类转换的负载,如果 ASM 是 60% 的话,BCEL 需要 700%,而 SERP 需要 1100% 或者更多。

相关文章

  • JAVA中ASM是什么?

    什么是 ASM ? ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可...

  • 01 - 初识Java ASM

    ASM是什么 简单来说,ASM[https://asm.ow2.io/]是一个Java字节码的类库。 问题一:AS...

  • Java ASM 与Aop简单实现(Version:asm5.0

    准备知识:Java ASM与字节码(Version:asm5.0.3,asm-commons5.0.3) 测试类:...

  • 【性能优化】Arthas 原理浅谈

    Arthas 是基于 ASM 和 Java Agent 技术实现的 Java 诊断利器。① ASM 是指一个 Ja...

  • ASM

    一、ASM版本: 我们常用的java版本是java8和java11,针对java 8我们需要使用ASM5.0版本,...

  • ASM

    ASM 是什么? ASM 是一个十分强大的字节码处理框架,基本上可以实现对字节码的任何操作,但是需要对 Java ...

  • Android ASM使用

    ASM ASM是一种基于java字节码层面的代码分析和修改工具,ASM的目标是生成,转换和分析已编译的java c...

  • ASM 概述

    0x00 什么是 ASM ASM is an all purpose Java bytecode manipula...

  • 深入开源框架底层之ASM

    什么是 ASM ? ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可...

  • 简单看看ASM框架

    什么是ASM ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接...

网友评论

      本文标题:JAVA中ASM是什么?

      本文链接:https://www.haomeiwen.com/subject/thgpgttx.html