2014-02-19 63 views

回答

2

这是字节码验证器的一部分。

在Java字节码中,指令都具有已知长度,并且必须从偏移量0开始一个接一个地出现,因此您可以始终静态地告诉每条指令的开始位置。因此,确保跳转目标是有效指令的开始只是一件简单的事情。与Dalvik或x86不同,您不允许跳到指令的中间。

You can find the source code for the verifier here.实际上有两个验证者。这是经典的更精细的代码,它没有StackMapTable(这包括所有包含jsr的代码)。