Processing Using the above tools you can also use Javap to view the format of a class file
Microsoft Windows [version 10.0.19041.685] (c) 2020 Microsoft Corporation. All rights reserved. D:\MCA\JVM\out\production\JVM\com\yuhl>javap -v Helloword.class Classfile /D:/MCA/JVM/out/production/JVM/com/yuhl/Helloword.class Last modified 2020-12-19; size 547 bytes MD5 checksum 0d5b91ddd1f20c608a7cabc0eb01efec Compiled from "Helloword.java" public class com.yuhl.Helloword minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_SUPER Constant pool: #1 = Methodref #6.#20 // java/lang/Object."<init>":()V #2 = Fieldref #21.#22 // java/lang/System.out:Ljava/io/PrintStream; #3 = String #23 // Helloword! #4 = Methodref #24.#25 // java/io/PrintStream.println:(Ljava/lang/String;) V #5 = Class #26 // com/yuhl/Helloword #6 = Class #27 // java/lang/Object #7 = Utf8 <init> #8 = Utf8 ()V #9 = Utf8 Code #10 = Utf8 LineNumberTable #11 = Utf8 LocalVariableTable #12 = Utf8 this #13 = Utf8 Lcom/yuhl/Helloword; #14 = Utf8 main #15 = Utf8 ([Ljava/lang/String;)V #16 = Utf8 args #17 = Utf8 [Ljava/lang/String; #18 = Utf8 SourceFile #19 = Utf8 Helloword.java #20 = NameAndType #7:#8 // "<init>":()V #21 = Class #28 // java/lang/System #22 = NameAndType #29:#30 // out:Ljava/io/PrintStream; #23 = Utf8 Helloword! #24 = Class #31 // java/io/PrintStream #25 = NameAndType #32:#33 // println:(Ljava/lang/String; )V #26 = Utf8 com/yuhl/Helloword #27 = Utf8 java/lang/Object #28 = Utf8 java/lang/System #29 = Utf8 out #30 = Utf8 Ljava/io/PrintStream; #31 = Utf8 java/io/PrintStream #32 = Utf8 println #33 = Utf8 (Ljava/lang/String; )V { public com.yuhl.Helloword(); descriptor: ()V flags: ACC_PUBLIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return LineNumberTable: line 9: 0 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this Lcom/yuhl/Helloword; public static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=1, args_size=1 0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3 // String Helloword! 5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return LineNumberTable: line 11: 0 line 12: 8 LocalVariableTable: Start Length Slot Name Signature 0 9 0 args [Ljava/lang/String; } SourceFile: "Helloword.java" D:\MCA\JVM\out\production\JVM\com\yuhl>Copy the code
Brief description:
- Classfile: indicates a Classfile
- Constant Pool: indicates the Constant pool
- SourceFile: the source file
Because the Java class is relatively simple to write, much of the information is missing, But the problem is in front of the reference dictionary can read 014 – JVM – Class file structure profile at https://blog.csdn.net/fsjwin/article/details/111422262
2.1 the effect
External Tools is easy to add.
See the same effect as using the command
The hard work of self-discipline is better than the bitter fruit of regret. Focus on Java backend technology and solutions, good at summing up, sharing! The hard work of self-discipline is better than the bitter fruit of regret. Focus on Java backend technology and solutions, good at summing up, sharing! The hard work of self-discipline is better than the bitter fruit of regret. Focus on Java backend technology and solutions, good at summing up, sharing!