我有一个用Java编写的方法:
public void myMethod(int y){
int x = 5 + y;
doSomething(x);
}
假设我的程序频繁地调用这个方法...
在Java虚拟机上运行编译好的代码时,JVM首先会解释该方法。然后经过一段时间后,如果我理解正确的话,它会决定将其编译成机器语言。
此时,
它会被机器码覆盖吗?如果被覆盖了,那么大小差异的问题如何解决?如果它被写入内存中的其他位置,已经加载到内存中的字节码是否会被释放?此外,如果字节码和JIT编译的代码都存在于内存中,当应用再次调用该方法时,JVM如何决定执行JIT编译的代码而不是字节码?