La compréhension javap sortie pour la Constante de la Piscine

Lors de l'exécution de javap sur un très simple HelloWorld application j'ai une certaine confusion sur la sortie autour de la constante de la piscine.

Code De Test

public class TestClass {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

Javap -c -verbose output (ciselée)

//Header + consts 1..22 snipped
const #22 = String      #23;    // hello world
const #23 = Asciz       hello world;
public static void main(java.lang.String[]);
Signature: ([Ljava/lang/String;)V
Code:
Stack=2, Locals=1, Args_size=1
0:   getstatic       #16; //Field java/lang/System.out:Ljava/io/PrintStream;
3:   ldc     #22; //String hello world
5:   invokevirtual   #24; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8:   return
//Debug info snipped
}

Ok, sur la ligne 3, nous voyons une poussée de l' "hello world" constante sur la pile via #22, mais const #23 semble tenir la valeur réelle. Je suppose que je suis un peu confus avec ce que le n ° (numéro), signifie qu'il apparaît sur le côté droit de l'impression.

Oracle/Sun de la page de man pour javap laisse beaucoup à désirer.

InformationsquelleAutor Andrew White | 2011-04-05