`
yangzhibin_java
  • 浏览: 52225 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

asm3.2 笔记

    博客分类:
  • j2se
 
阅读更多

1,classReader和classWriter区别

ClassReader 类(读取): 这个类可以直接由字节数组或由 class 文件间接的获得字节码数据,它能正确的分析字节码,构建出抽象的树在内存中表示字节码

ClassWriter类(生成): 生成字节码的工具类

          ---实现了ClassVisitor接口

          ---含有一个 toByteArray() 函数,返回生成的字节码的字节流

 

一,ClassVisitor实现类
    ASMifierClassVisitor
    CheckClassAdapter
    ClassAdapter
    ClassNode
    ClassWriter
    EmptyVisitor
    RemappingClassAdapter
    SAXClassAdapter
    SerialVersionUIDAdder
    StaticInitMerger
    TraceClassVisitor

二,AnnotationVisitor实现类
    AnnotationNode
    ASMifierAnnotationVisitor
    CheckAnnotationAdapter
    EmptyVisitor
    RemappingAnnotationAdapter
    SAXAnnotationAdapter
    TraceAnnotationVisitor

三,FieldVisitor实现类
    ASMifierFieldVisitor
    CheckFieldAdapter
    EmptyVisitor
    FieldNode
    RemappingFieldAdapter
    SAXFieldAdapter
    TraceFieldVisitor

四,MethodVisitor实现类
    AdviceAdapter
    AnalyzerAdapter
    ASMifierMethodVisitor
    CheckMethodAdapter
    CodeSizeEvaluator
    EmptyVisitor
    GeneratorAdapter
    InstructionAdapter
    JSRInlinerAdapter
    LocalVariablesSorter
    MethodAdapter
    MethodNode
    RemappingMethodAdapter
    SAXCodeAdapter
    TraceMethodVisitor

五,Opcodes实现类
    AdviceAdapter
    Analyzer
    ASMContentHandler
    BasicInterpreter
    BasicVerifier
    CodeSizeEvaluator
    JSRInlinerAdapter
    SimpleVerifier
    SourceInterpreter

 

1. ClassVisitor接口 来访问Class中的每个元素

2.用户一般使用 ClassReader类 来读取Class的字节码时,

       注:每read一个元素,ASM会调用指定的ClassVisitor接口的实现类 来访问这个元素(访问者模式)

 

分享到:
评论

相关推荐

    ASM330LHH application

    ##### 3.2 初始化步骤 - **INT1**引脚应保持不连接或上电期间连接外部下拉电阻。 - **INT2**引脚建议不要连接外部上拉电阻。 - **配置器件**: - **SPI模式**:设置寄存器13h中的I2C_disable=1及寄存器18h中的...

    笔记本上vbox虚拟化环境安装 oracle rac详细原创完整版

    2.8.2依次创建vote、ocr、asm1、asm2、asm3、asm4、asm5五个磁盘 2.8.3把所有新创建的磁盘全部改成可共享模式 2.8.4启用两台主机sata控制器的I/O缓存功能 2.9 设置绑定裸设备 2.10 添加ASM磁盘 2.11 创建SSH信任关系...

    OracleLinux6.5下安装Oracle11gRAC-Multipath-ASM20140606发行版

    Oraclelinux6.5 下 oracle11.2.0.3 RAC_Multipath_ASM 安装—飞扬笔记 2.3.7 修改 oracle 用户限制 ................................................................................... 13 2.3.8 修改/etc/pam.d...

    [小e笔记]之10gR2+redhat5.3+32bit+RAC安装

    3.2修改/etc/hosts 48 3.3 修改Oracle用户下的环境变量 48 4配置Clusterware安装环境 48 4.1使用SSH建立用户等效性 48 4.2配置Oracle自动存储管理(ASM) 51 5 安装Clusterware 52 5.1 检查安装环境 52 5.2 ...

    Hibernate入门笔记

    **3.2 配置文件解析** - `<hibernate-mapping>`:根元素,用于指定当前配置文件所属的包。 - `<class>`:指定一个类的映射信息,其属性`name`用来指定Java类名。 - `<id>`:映射实体类中的主键字段。 - `...

    Oracle_11G_R2(64) RAC VMware workstation 集群部署

    ##### **3.2 hosts文件配置** 编辑各节点的`/etc/hosts`文件,确保每个节点能够通过IP地址解析对方的主机名。 ##### **3.3 DNS配置(过程略)** 配置DNS服务,以便于节点间通过域名进行通信。 #### 检查并安装所需...

    Hibernate学习笔记

    ### Hibernate学习笔记知识点详解 #### 一、在Eclipse中配置Hibernate环境 ##### 1. 配置Classpath Variables 为了在Eclipse中正确配置Hibernate,首先需要设置Classpath Variables来指向Hibernate安装路径下的...

    一步一图在两个Oracle Linux虚拟机上安装Oracle11gR2RAC

    ##### 3.2 用户规划 - **oracle**:Oracle数据库的主用户。 - **grid**:用于管理Grid Infrastructure的用户。 ##### 3.3 主机文件系统规划 - **/u01/app/oracle**:Oracle软件的安装路径。 - **/u01/app/grid**...

    red hat5下oracle10G 的Rac 安装

    - 总共添加 5 块磁盘,其中 1 块为本地磁盘,2 块作为 clusterware 安装所需的 ocr 和 voting disk,另外 2 块作为 ASM 磁盘。 #### 四、Oracle 10G RAC 安装 ##### 4.1 Oracle 10G RAC 安装概述 - **目标**:在 ...

    【软件加密_技术内幕】

    [Trial version] 3.2 利用调试API编写脱壳机 [Trial version] DEF分析与打造其脱壳软件----我的一篇析文.htm [Trial version] 用调试函数跟踪API.htm [Trial version] 3.3 利用调试API制作内存补丁 [Trial ...

    自己动手写操作系统(含源代码).part2

    内容简介  本书从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个...

    自己动手写操作系统(含源代码).part1

    内容简介  本书从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个...

Global site tag (gtag.js) - Google Analytics