软件开发架构师

JVM——字节码增强技术简介

java 116 2019-04-20 00:17

    Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等。

    实现字节码增强的主要步骤为:

  1、修改字节码

   在内存中获取到原来的字节码,然后通过一些工具(如 ASM,Javaasist)来修改它的byte[]数组,得到一个新的byte数组。

  2、使修改后的字节码生效

    有两种方法:

   1) 自定义ClassLoader来加载修改后的字节码;

   2)替换掉原来的字节码:在JVM加载用户的Class时,拦截,返回修改后的字节码;或者在运行时,使用Instrumentation.redefineClasses方法来替换掉原来的字节码;

文章评论