Classfile VmDemo.class Last modified 2026年11月4日; size 1065 bytes SHA-256 checksum cd3342b7794e86a136a7de4594837097b69b9b59f852e4f4614d4927f0058d4a Compiled from "VmDemo.java" public final class VmDemo minor version: 0 major version: 61 flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER this_class: #20 // VmDemo super_class: #2 // java/lang/Object interfaces: 0, fields: 2, methods: 5, attributes: 3 Constant pool: #1 = Methodref #2.#3 // java/lang/Object."":()V #2 = Class #4 // java/lang/Object #3 = NameAndType #5:#6 // "":()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Integer 100000 #8 = String #9 // JVM #9 = Utf8 JVM #10 = Class #11 // VmDemo$Box #11 = Utf8 VmDemo$Box #12 = Methodref #10.#13 // VmDemo$Box."":(I)V #13 = NameAndType #5:#14 // "":(I)V #14 = Utf8 (I)V #15 = Fieldref #10.#16 // VmDemo$Box.value:I #16 = NameAndType #17:#18 // value:I #17 = Utf8 value #18 = Utf8 I #19 = Fieldref #20.#21 // VmDemo.seed:I #20 = Class #22 // VmDemo #21 = NameAndType #23:#18 // seed:I #22 = Utf8 VmDemo #23 = Utf8 seed #24 = Methodref #20.#25 // VmDemo.add:(II)I #25 = NameAndType #26:#27 // add:(II)I #26 = Utf8 add #27 = Utf8 (II)I #28 = Fieldref #20.#29 // VmDemo.shared:LVmDemo$Box; #29 = NameAndType #30:#31 // shared:LVmDemo$Box; #30 = Utf8 shared #31 = Utf8 LVmDemo$Box; #32 = Methodref #20.#33 // VmDemo.run:()I #33 = NameAndType #34:#35 // run:()I #34 = Utf8 run #35 = Utf8 ()I #36 = Fieldref #37.#38 // java/lang/System.out:Ljava/io/PrintStream; #37 = Class #39 // java/lang/System #38 = NameAndType #40:#41 // out:Ljava/io/PrintStream; #39 = Utf8 java/lang/System #40 = Utf8 out #41 = Utf8 Ljava/io/PrintStream; #42 = Methodref #43.#44 // java/io/PrintStream.println:(I)V #43 = Class #45 // java/io/PrintStream #44 = NameAndType #46:#14 // println:(I)V #45 = Utf8 java/io/PrintStream #46 = Utf8 println #47 = Utf8 Code #48 = Utf8 LineNumberTable #49 = Utf8 LocalVariableTable #50 = Utf8 this #51 = Utf8 LVmDemo; #52 = Utf8 a #53 = Utf8 b #54 = Utf8 s #55 = Utf8 Ljava/lang/String; #56 = Utf8 box #57 = Utf8 main #58 = Utf8 ([Ljava/lang/String;)V #59 = Utf8 args #60 = Utf8 [Ljava/lang/String; #61 = Utf8 result #62 = Utf8 #63 = Utf8 SourceFile #64 = Utf8 VmDemo.java #65 = Utf8 NestMembers #66 = Utf8 InnerClasses #67 = Utf8 Box { static int seed; descriptor: I flags: (0x0008) ACC_STATIC static VmDemo$Box shared; descriptor: LVmDemo$Box; flags: (0x0008) ACC_STATIC public VmDemo(); descriptor: ()V flags: (0x0001) ACC_PUBLIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: return LineNumberTable: line 1: 0 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this LVmDemo; static int add(int, int); descriptor: (II)I flags: (0x0008) ACC_STATIC Code: stack=2, locals=2, args_size=2 0: iload_0 1: iload_1 2: iadd 3: ireturn LineNumberTable: line 10: 0 LocalVariableTable: Start Length Slot Name Signature 0 4 0 a I 0 4 1 b I static int run(); descriptor: ()I flags: (0x0008) ACC_STATIC Code: stack=3, locals=4, args_size=0 0: iconst_3 1: istore_0 2: ldc #7 // int 100000 4: istore_1 5: ldc #8 // String JVM 7: astore_2 8: new #10 // class VmDemo$Box 11: dup 12: iload_0 13: invokespecial #12 // Method VmDemo$Box."":(I)V 16: astore_3 17: aload_3 18: aload_3 19: getfield #15 // Field VmDemo$Box.value:I 22: getstatic #19 // Field seed:I 25: invokestatic #24 // Method add:(II)I 28: putfield #15 // Field VmDemo$Box.value:I 31: aload_3 32: putstatic #28 // Field shared:LVmDemo$Box; 35: aload_3 36: getfield #15 // Field VmDemo$Box.value:I 39: iload_1 40: iadd 41: ireturn LineNumberTable: line 13: 0 line 14: 2 line 15: 5 line 16: 8 line 17: 17 line 18: 31 line 19: 35 LocalVariableTable: Start Length Slot Name Signature 2 40 0 a I 5 37 1 b I 8 34 2 s Ljava/lang/String; 17 25 3 box LVmDemo$Box; public static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: (0x0009) ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=2, args_size=1 0: invokestatic #32 // Method run:()I 3: istore_1 4: getstatic #36 // Field java/lang/System.out:Ljava/io/PrintStream; 7: iload_1 8: invokevirtual #42 // Method java/io/PrintStream.println:(I)V 11: return LineNumberTable: line 23: 0 line 24: 4 line 25: 11 LocalVariableTable: Start Length Slot Name Signature 0 12 0 args [Ljava/lang/String; 4 8 1 result I static {}; descriptor: ()V flags: (0x0008) ACC_STATIC Code: stack=1, locals=0, args_size=0 0: bipush 7 2: putstatic #19 // Field seed:I 5: return LineNumberTable: line 2: 0 } SourceFile: "VmDemo.java" NestMembers: VmDemo$Box InnerClasses: static final #67= #10 of #20; // Box=class VmDemo$Box of class VmDemo Classfile VmDemo$Box.class Last modified 2026年11月4日; size 371 bytes SHA-256 checksum a438fe38f1a6ee89eca6beb78e400cfd527a8eaddfd7ef1fc6339698f41d22d3 Compiled from "VmDemo.java" final class VmDemo$Box minor version: 0 major version: 61 flags: (0x0030) ACC_FINAL, ACC_SUPER this_class: #8 // VmDemo$Box super_class: #2 // java/lang/Object interfaces: 0, fields: 1, methods: 1, attributes: 3 Constant pool: #1 = Methodref #2.#3 // java/lang/Object."":()V #2 = Class #4 // java/lang/Object #3 = NameAndType #5:#6 // "":()V #4 = Utf8 java/lang/Object #5 = Utf8 #6 = Utf8 ()V #7 = Fieldref #8.#9 // VmDemo$Box.value:I #8 = Class #10 // VmDemo$Box #9 = NameAndType #11:#12 // value:I #10 = Utf8 VmDemo$Box #11 = Utf8 value #12 = Utf8 I #13 = Utf8 (I)V #14 = Utf8 Code #15 = Utf8 LineNumberTable #16 = Utf8 LocalVariableTable #17 = Utf8 this #18 = Utf8 LVmDemo$Box; #19 = Utf8 SourceFile #20 = Utf8 VmDemo.java #21 = Utf8 NestHost #22 = Class #23 // VmDemo #23 = Utf8 VmDemo #24 = Utf8 InnerClasses #25 = Utf8 Box { int value; descriptor: I flags: (0x0000) VmDemo$Box(int); descriptor: (I)V flags: (0x0000) Code: stack=2, locals=2, args_size=2 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: aload_0 5: iload_1 6: putfield #7 // Field value:I 9: return LineNumberTable: line 7: 0 LocalVariableTable: Start Length Slot Name Signature 0 10 0 this LVmDemo$Box; 0 10 1 value I } SourceFile: "VmDemo.java" NestHost: class VmDemo InnerClasses: static final #25= #8 of #22; // Box=class VmDemo$Box of class VmDemo