Dies wird im "konstanten Pool" der Klasse gespeichert (zusammen mit allem anderen, Klassen und Methodennamen usw.).
Sie würden Javap verwenden, um den Bytecode in einem lesbaren Format zu betrachten.
Sehen Anton Arhipovs ausgezeichneter Blog über Bytecode -Grundlagen
Ein Beispiel von dort für den Unterricht:
public class Foo {
private String bar;
public String getBar(){
return bar;
}
...
... ergibt Bytecode:
public java.lang.String getBar();
Code:
0: aload_0
1: getfield #2; //Field bar:Ljava/lang/String;
4: areturn
Und hat einen konstanten Pool:
Compiled from "Foo.java"
public class Foo extends java.lang.Object
SourceFile: "Foo.java"
minor version: 0
major version: 50
Constant pool:
const #1 = Method #4.#17; // java/lang/Object."<init>":()V
const #2 = Field #3.#18; // Foo.bar:Ljava/lang/String;
const #3 = class #19; // Foo
const #4 = class #20; // java/lang/Object
const #5 = Asciz bar;
const #6 = Asciz Ljava/lang/String;;
const #7 = Asciz <init>
const #8 = Asciz ()V;
const #9 = Asciz Code;
const #10 = Asciz LineNumberTable;
const #11 = Asciz getBar;
const #12 = Asciz ()Ljava/lang/String;;
const #13 = Asciz setBar;
const #14 = Asciz (Ljava/lang/String;)V;
const #15 = Asciz SourceFile;
const #16 = Asciz Foo.java;
const #17 = NameAndType #7:#8;// "<init>":()V
const #18 = NameAndType #5:#6;// bar:Ljava/lang/String;
const #19 = Asciz Foo;
const #20 = Asciz java/lang/Object;
Sie können den Verweis auf verfolgen String
aus Foo#getBar
durch den konstanten Pool als:
- Getfield #2
- wobei #2 ein Feld ist, in Bezug auf #3. #18
- wobei #3 die Klasse #19 referenziert
- Welches ist Klasse
Foo
- Welches ist Klasse
- und #18 ist ein Namensschiff -Referenzieren Nr. 5 und #6
- und #5 ist Bar (Feld)
- und #6 ist der Verweis auf
java.lang.String
- wobei #3 die Klasse #19 referenziert
Ich empfehle dringend, Antons Blog zu lesen. Es ist wirklich gut gemacht!
Ich würde auch lesen James D. Blooms JVM -Interna -Artikel wie es viele JVM -interne Architektur abdeckt. Beachten Sie jedoch Daten und Versionen, auf die sich die Dinge ändern (z.