2014-02-19 59 views

回答

2

這是字節碼驗證器的一部分。

在Java字節碼中,指令都具有已知長度,並且必須從偏移量0開始一個接一個地出現,因此您可以始終靜態地告訴每條指令的開始位置。因此,確保跳轉目標是有效指令的開始只是一件簡單的事情。與Dalvik或x86不同,您不允許跳到指令的中間。

You can find the source code for the verifier here.實際上有兩個驗證者。這是經典的更精細的代碼,它沒有StackMapTable(這包括所有包含jsr的代碼)。