我试图理解 Java JITC 的“本机代码生成和执行”部分,但很难准确地想象发生了什么。例如说我有以下课程:
class Foo
{
private int x;
public void incX()
{
x++;
}
}
javac 为该方法生成以下字节码:
public void incX();
Code:
Stack=3, Locals=1, Args_size=1
0: aload_0
1: dup
2: getfield #17; //Field x:I
5: iconst_1
6: iadd
7: putfield #17; //Field x:I
10: return
LineNumberTable:
line 33: 0
line 34: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 0 this LFoo;
当 JITC 将其转换为本机代码时,究竟会发生什么?JVM 是如何执行本机代码的?