Java运行原理分析
A : \mathbb{A}: A:对下面的代码运行进行分析:
public class Demo1{public static void main(String[] args){int x = 500;int y = 100;int a = x / y;int b = 50;System.out.println(a + b);}
}
B : \mathbb{B}: B:得到的结果
Classfile /D:/WangYiYun/Demo1.classLast modified 2025-5-14; size 414 bytesMD5 checksum ae6fa820973681b35609c75631cb255bCompiled from "Demo1.java"
public class Demo1minor version: 0major version: 52flags: ACC_PUBLIC, ACC_SUPER
Constant pool:#1 = Methodref #5.#14 // java/lang/Object."<init>":()V#2 = Fieldref #15.#16 // java/lang/System.out:Ljava/io/PrintStream;#3 = Methodref #17.#18 // java/io/PrintStream.println:(I)V#4 = Class #19 // Demo1#5 = Class #20 // java/lang/Object#6 = Utf8 <init>#7 = Utf8 ()V#8 = Utf8 Code#9 = Utf8 LineNumberTable#10 = Utf8 main#11 = Utf8 ([Ljava/lang/String;)V#12 = Utf8 SourceFile#13 = Utf8 Demo1.java#14 = NameAndType #6:#7 // "<init>":()V#15 = Class #21 // java/lang/System#16 = NameAndType #22:#23 // out:Ljava/io/PrintStream;#17 = Class #24 // java/io/PrintStream#18 = NameAndType #25:#26 // println:(I)V#19 = Utf8 Demo1#20 = Utf8 java/lang/Object#21 = Utf8 java/lang/System#22 = Utf8 out#23 = Utf8 Ljava/io/PrintStream;#24 = Utf8 java/io/PrintStream#25 = Utf8 println#26 = Utf8 (I)V
{public Demo1();descriptor: ()Vflags: ACC_PUBLICCode:stack=1, locals=1, args_size=10: aload_01: invokespecial #1 // Method java/lang/Object."<init>":()V4: returnLineNumberTable:line 1: 0public static void main(java.lang.String[]);descriptor: ([Ljava/lang/String;)Vflags: ACC_PUBLIC, ACC_STATICCode:stack=3, locals=5, args_size=10: sipush 5003: istore_14: bipush 1006: istore_27: iload_18: iload_29: idiv10: istore_311: bipush 5013: istore 415: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;18: iload_319: iload 421: iadd22: invokevirtual #3 // Method java/io/PrintStream.println:(I)V25: returnLineNumberTable:line 3: 0line 4: 4line 5: 7line 6: 11line 7: 15line 8: 25
}
SourceFile: "Demo1.java"
C : \mathbb{C}: C:运行原理分析: