【发布时间】:2018-04-27 11:59:45
【问题描述】:
因此,在检测期间,我们注意到,当我们有一个方法 foo 并为其交换字节码时,只有新的调用才会对新的字节码进行操作,而交换不会影响该方法的已运行实例。
出于引用目的,是否在某处记录了该行为?
【问题讨论】:
-
您能澄清一下“方法的实例”是什么意思吗?
-
“新调用”是什么意思?是
existingInstance.foo()还是new Instance().foo()? -
@Andrew 假设我调用一个方法
myinstance.foo(),开始第一次运行(“实例”)A。现在我同时交换该方法的字节码并再次调用myinstance.foo(),开始运行/实例 B。B将运行新的字节码,而A仍将运行旧的字节码,直到它返回......或者至少这是我们认为已经观察到的。
标签: java methods jvm bytecode instrumentation