加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

字节码框架ASM与AOP,ASM与BufferKnife/FastJSON

发布时间:2020-12-16 19:47:59 所属栏目:百科 来源:网络整理
导读:java字节码框架ASM ; ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有
> java字节码框架ASM
ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。
ObjectWeb ASM轻量级的Java字节码处理框架,它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。
-- ASM包括主要三个类:
1、ClassReader : 负责从类文件中读取输入流,并依照固定的顺序调用 ClassVisitor 中声明的多个 visitorXxx的方法。
2、ClassVisitor : 抽象类,负责类内容的访问。
3、ClassWriter :负责生成byte[]字节流。ClassWriter是ClassVisitor的子类。

> ASM与AOP;使用ASM操作Java字节码,实现AOP原理;ASM与编译时注解

- BufferKnife与ASM,objectwebasm,一种.class的代码生成器的开源项目.

用字节码来生成类;使用ASM动态生成Java字节码文件(.class) 或者 加载字节码后动态修改字节码,添加我们需要执行的代码,来模拟实现Spring AOP。
使用ASM操作Java字节码,实现AOP原理- https://yq.aliyun.com/articles/4798#

> FastJSON使用到了ASM框架。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读