摘要:
前面讲述了通过自定义ClassLoader来实现Class的热替换,这里还可以通过动态修改内存中的字节码,将修改过的class再次装载到JVM中。实现动态修改内存中的字节码主要借助Java的Instrumentation特性来实现的。Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。在 Java SE 6 阅读全文