Wenn ich meinen Java-Projekt-Byte-Code beobachte, sehe ich den folgenden Byte-Code:
java.lang.Object. () V
java.lang.Boolean. (Z) V
Was ist die Bedeutung von & lt; init & gt; () V und & lt; init & gt; (Z) V
%Vor%
ist eine void-Methode ( V
) für java.lang.Object
, die keine Argumente benötigt.
%Vor%
ist eine ungültige Methode für java.lang.Boolean
, die ein einzelnes boolean
( Z
seit B
ist byte
) Argument verwendet.
Kurz gesagt,
%Vor%Weitere Informationen finden Sie unter JNI-Typ-Signaturen .
Der JNI verwendet die Java VM-Repräsentation von Typ-Signaturen. Tabelle 3-2 zeigt diese Typensignaturen.
Tabelle 3-2 Java-VM-Typ-Signaturen
%Vor%Zum Beispiel die Java-Methode:
%Vor%hat die folgende Typsignatur:
%Vor%
Es sind alle Methodensignaturen in Bytecode, die von JVM verwendet werden.
<init>()V and <init>(Z)V
sind Konstrukteursignaturen. Für JVM-Konstruktoren gibt es genauso wie für alle anderen Methoden, sie haben einen Namen, der immer <init>
ist, und einen Rückgabewert, der immer V
ist (bedeutet void). In unserem Fall bedeutet Z
% boolean
-Parameter ( B
ist reserviert für byte
)
das ist
%Vor%in Klasse Test Bytecode bedeutet
%Vor%Sie können auch treffen
%Vor%bedeutet statischen Initialisierungsblock
%Vor%