public class Test {
private int a;
int b = 10;
String name;
String nick = "tom";
}
执行javap命令
javap -verbose Test.class
输出如下:
Classfile /D:/workspace/java/*****/java/Test.class
Last modified 2019-10-14; size 310 bytes
MD5 checksum 19366669865106a6ae47a9005c031366
Compiled from "Test.java"
public class Test
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #6.#19 // java/lang/Object."<init>":()V
#2 = Fieldref #5.#20 // Test.b:I
#3 = String #21 // tom
#4 = Fieldref #5.#22 // Test.nick:Ljava/lang/String;
#5 = Class #23 // Test
#6 = Class #24 // java/lang/Object
#7 = Utf8 a
#8 = Utf8 I
#9 = Utf8 b
#10 = Utf8 name
#11 = Utf8 Ljava/lang/String;
#12 = Utf8 nick
#13 = Utf8 <init>
#14 = Utf8 ()V
#15 = Utf8 Code
#16 = Utf8 LineNumberTable
#17 = Utf8 SourceFile
#18 = Utf8 Test.java
#19 = NameAndType #13:#14 // "<init>":()V
#20 = NameAndType #9:#8 // b:I
#21 = Utf8 tom
#22 = NameAndType #12:#11 // nick:Ljava/lang/String;
#23 = Utf8 Test
#24 = Utf8 java/lang/Object
{
int b;
descriptor: I
flags:
java.lang.String name;
descriptor: Ljava/lang/String;
flags:
java.lang.String nick;
descriptor: Ljava/lang/String;
flags:
public Test();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: aload_0
5: bipush 10
7: putfield #2 // Field b:I
10: aload_0
11: ldc #3 // String tom
13: putfield #4 // Field nick:Ljava/lang/String;
16: return
LineNumberTable:
line 6: 0
line 8: 4
line 10: 10
}
SourceFile: "Test.java"