Java 保留堆的映像,并在执行某些方法后返回

Java 保留堆的映像,并在执行某些方法后返回,java,jvm,stack,Java,Jvm,Stack,我有一种情况,我想在Java代码中插入指令来添加函数调用,那些我添加调用的函数可能会影响系统中的对象状态,从而改变程序的状态。我正在寻找一种方法来插入这些调用,但保持程序状态不变 我正在寻找一种方法来存储堆的状态(Image?),稍后再返回,我的意思是在检测代码的末尾。我试图用复制当前JVM的想法来实现它,可能会在其中执行插入指令的代码(使用程序的确切状态),并在插入指令完成后返回到原始JVM。我找不到关于这种情况的文档,所以我想知道是否有更好的方法。Java程序的状态不仅仅是堆。它还包括正在运

我有一种情况,我想在Java代码中插入指令来添加函数调用,那些我添加调用的函数可能会影响系统中的对象状态,从而改变程序的状态。我正在寻找一种方法来插入这些调用,但保持程序状态不变

我正在寻找一种方法来存储堆的状态(Image?),稍后再返回,我的意思是在检测代码的末尾。我试图用复制当前JVM的想法来实现它,可能会在其中执行插入指令的代码(使用程序的确切状态),并在插入指令完成后返回到原始JVM。我找不到关于这种情况的文档,所以我想知道是否有更好的方法。

Java程序的状态不仅仅是堆。它还包括正在运行的线程、加载的类、常量池、缓存和许多其他VM结构


Java程序的保存状态与操作系统中任意进程的保存状态大致相同。可能是实现这一点的最接近的方法,但这仍然不是一个简单的解决方案。

如果您想消除添加的函数调用的副作用,请不要添加它们。但我确信你需要执行它们,否则你不会添加它们。在这种情况下,执行它们然后撤销它们的效果是没有意义的。您是否可以通过添加带有这种插入指令的函数调用的代码示例来更详细地介绍一下,并描述其效果?因为看起来你不应该求助于派生JVM来实现这一点。为什么你有静态可变状态?@LouisWasserman抱歉,这是误导,我把它改成了对象