java的动态性------Java字节码操作

常见的字节码操作类库

BECL :是java classing广泛使用的一种框架,可以深入理解JVM汇编语言,难学,需要一些JVM底层指令

ASM :轻量级的java字节码操作框架,直接涉及JVM底层操作和指令

CGLIB  :是基于ASM的的实现,强大性能高

Javassist  :开源简单 支持java level  和bytecode level来操作字节码  简单,性能相对BECL,ASM性能低下,和CGLIB差不多

               (1) AOP  Javassist  是一个很好的工具实现AOP,动态修改方法,给方法中的一行前面后面或者both添加代码

              (2) Reflection  Javassist 里面的很多方法和Reflection中一样  CtField对应Field CtMethod 对应Method。还有                          就是你在动态的加入了新的方法或者修改方法之后,通过一般的new创建对象是调用不到的,所有通过反射对象来调用。

                    Javassist  缺点:不支持泛型 枚举  不能修改注解 不支持内部类  匿名类  不支持数组的初始化 不支持continue break也不能支持某些继承


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值