![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ASM字节码框架
文章平均质量分 79
冰火两重天
专注于hadoop平台大数据处理的技术对机器学习以及统计学持续的不断深入
展开
-
Core API之Class接口和组件
Presentation ASM生成和转换编译后class的API是基于ClassVisitor接口。简单部分通过简单方法调用(参数描述它们的内容,且返回类型为void)来访问。哪些内容长度不定且复杂的部分可以通过初始方法调用来访问,它返回附加的访问接口。visitAnnotation,visitField和visitMethod方法各自返回AnnotationVisitor、Fie原创 2012-11-29 18:10:57 · 940 阅读 · 0 评论 -
Core API之Class工具类
除了ClassVisitor接口和ClassReader、ClassAdapter、ClassWriter之外,ASM提供了org.objectweb.asm.util包。这些工具在开发class生成器和适配器中非常有用。Type 当它们已编译过的class存储时,ASM api暴露了java类型:internal name或type 描述。Type对象代表了一个Java类型,可以从原创 2012-12-06 09:15:26 · 1546 阅读 · 0 评论 -
Core API之Method结构
在编译后class内部,method的代码以字节码指令序列的方式存储。为了生成和转换class,最基本的是知道这些指令、了解它们如何工作。Execution model Java代码在线程内被执行。每个线程有自己的执行栈,它由frame组成。每个frame代表了一个方法调用:每个时间一个方法被调用,新frame被压入当前线程的执行栈,当方法正常返回或有异常,这个frame被弹出栈原创 2012-12-06 12:21:01 · 845 阅读 · 0 评论 -
Core API Method之接口和组件
Presentation 生成和转换编译方法的ASM API是基于MethodVisitor接口,它通过ClassVisitor的vistMethod方法返回。除了annotation和debug信息外,基于指令参数类型个数,该接口为每个字节码指令类别定义了一个方法。这些方法必须以以下顺序调用:visitAnnotationDefault?( visitAnnotation |原创 2012-12-10 11:19:14 · 2206 阅读 · 0 评论 -
Core API之Class类结构
本章解释如何使用ASM core API生成、转换编译Java类。结构OverView(structure) 编译类(class)的整体结构很简单。不像本地编译程序,一个编译class有结构信息和从源码而来的大多数符号标记。事实上,它包含以下几部分: 1)描述class的modifiers(如public、private),name,super class、interfac原创 2012-11-29 10:05:05 · 981 阅读 · 0 评论 -
Core API之Method工具类
org.objectweb.asm.commons包含预定义的方法适配器,主要用来定义自己的适配器。Basic toolsType 许多字节码指令,如xLoad,xAdd,xReturn,依赖于它们应用的类型。Type类提供了getOpcode方法,获取这些指令。该方法接受一个int类型的opCode作为参数,返回对应的类型对应的opcode。例如,如果t等于Type.FLOAT原创 2012-12-28 14:28:38 · 1272 阅读 · 0 评论