2013-02-06 63 views

回答

13
java.lang.Object.()V 

java.lang.Object空隙方法(V)不帶參數。

java.lang.Boolean.(Z)V 

java.lang.Boolean空隙方法採用單個booleanZ因爲Bbyte)參數。

總之,

abc.def.WXYZ(IIIIIIIIIIIIII)J 
^   ^   ^
target_class argument-types return_type 

更多細節參見JNI Type Signatures

JNI使用Java VM的類型簽名表示。表3-2顯示了這些類型簽名。

表3-2 Java虛擬機類型簽名

Type Signature    Java Type 
Z       boolean 
B       byte 
... 
L fully-qualified-class ; fully-qualified-class 
[ type      type[] 
(arg-types) ret-type  method type 

例如,Java方法:

long f (int n, String s, int[] arr); 

具有以下類型簽名:

(ILjava/lang/String;[I)J 
3

這一切都JVM使用的字節碼中的方法簽名。

<init>()V and <init>(Z)V是construtor簽名。對於JVM構造函數,就像其他方法一樣,它們的名稱總是<init>),並且返回值始終爲V(表示void)。在我們的例子Z意味着boolean參數(B保留用於byte

<init>(Z)V 

類測試的字節碼是指

class Test { 

    Test(boolean arg0) { 
    } 
} 

你也能滿足

static <clinit>()V 

表示靜態初始化塊

static { 
... 
} 
相關問題