HelloWorld It's the first program we wrote , The source code is as follows :
public class HelloWorld { public static void main(String[] args) { System.out.
println("Hello World!"); } }
A few years later, we'll go back to the program , We don't think it's easy anymore .

Any one of them Java Program to run , We definitely need to compile it into bytecode , So this bytecode , Generally speaking, we should have the following information : Class basic information , Constant pool , Definition of class method , Include virtual machine instructions . We can have a look , Bytecode is more difficult for us to understand , We use jdk Provides tools to decompile , Some mnemonics will be generated .
javap -v HelloWorld.class
-v Details will be output , The next article focuses on this bytecode
Classfile /Users/zhuxuemin/IdeaProjects/jvm_code/out/production/jvm_code/
HelloWorld.class Last modified 2020-1-11; size 534 bytes MD5 checksum 9
b61f92903fbfa20a9aaee1114966fc1 Compiled from"HelloWorld.java" public class
HelloWorld 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
// Hello World! #4 = Methodref #24.#25 //
java/io/PrintStream.println:(Ljava/lang/String;)V #5 = Class #26 // HelloWorld #
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 LHelloWorld; #14 = Utf8 main #15 = Utf8 ([Ljava/lang/String;)V #16 = Utf8
args #17 = Utf8 [Ljava/lang/String; #18 = Utf8 SourceFile #19 = Utf8 HelloWorld.
java #20 = NameAndType #7:#8 // "<init>":()V #21 = Class #28 // java/lang/System
#22 = NameAndType #29:#30 // out:Ljava/io/PrintStream; #23 = Utf8 Hello World!
#24 = Class #31 // java/io/PrintStream #25 = NameAndType #32:#33 //
println:(Ljava/lang/String;)V #26 = Utf8 HelloWorld #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 HelloWorld(); 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 4: 0
LocalVariableTable: Start Length Slot Name Signature 0 5 0 this LHelloWorld;
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
Hello World! 5: invokevirtual #4 // Method
java/io/PrintStream.println:(Ljava/lang/String;)V 8: return LineNumberTable:
line6: 0 line 7: 8 LocalVariableTable: Start Length Slot Name Signature 0 9 0
args[Ljava/lang/String; } SourceFile: "HelloWorld.java"

Technology
©2019-2020 Toolsou All rights reserved,
One is called “ Asking for the train ” A small village Finally got the train Spring Boot Lesson 16 :SpringBoot Implementation of multithreading with injection class Chrome OS, For programmers and Windows What does it mean ? Internet Marketing JAVA Convert a string to a numeric type I've been drinking soft water for three years ? What is the use of soft water and water softener You don't know ——HarmonyOS Talking about uni-app Page value transfer problem JavaScript Medium Call and ApplySparkSQL Achieve partition overlay write Character recognition technology of vehicle license plate based on Neural Network