Java字节码增强简介
所属分类 java
浏览量 1009
字节码 查看工具 jclasslib
https://bintray.com/ingokegel/generic/jclasslib/view
org.gjt.jclasslib.browser.BrowserApplication
ASM
Cglib 基于ASM
ASM API
ASM Core API
流式处理字节码文件
ClassReader
ClassWriter
Visitor MethodVisitor FieldVisitor AnnotationVisitor AOP重点使用MethodVisitor
ASM Tree API
把整个类的结构读取到内存中
用Node来映射字节码的各个区域
ASM 在指令层次上操作字节码
Javassist 源代码层次操作字节码
ClassPool CtClass CtMethod CtField
CtClass(compile-time class)
编译时类信息,它是一个Class文件在代码中的抽象表现形式,可以通过一个类的全限定名来获取一个CtClass对象,用来表示这个类文件
ClassPool
ClassPool是保存CtClass信息的HashTable,Key为类名,Value为类名对应的CtClass对象
对某个pool.getCtClass("className") 从pool中获取相应的CtClass
Instrument
JDK 1.6 之前,Instrument只能在JVM启动加载类时生效
JDK 1.6 之后,Instrument支持运行时修改类
ClassFileTransformer接口
transform()方法在类被加载时调用,利用ASM或Javassist对传入的字节码进行改写或替换,生成新的字节码数组后返回
借助Agent将Instrument注入到JVM中
btrace 利用Instrument,无侵入地跟踪一个正在运行的JVM,监控类和方法级别的状态信息
javaagent机制
javaagent两种加载方式及实例
java agent 简单例子
java debug 原理简介
arthas原理简介
jvm外挂工具揭秘
上一篇
下一篇
Linux常用命令汇总
Java类加载过程
2020热词中英文
JDK CGLIB Javassist ASM 动态代理 比较
SpringBoot异步任务 @Async
groovy实例