java程序从源文件创建到程序运行需要经过两大步骤:
1、(编译):源文件被JVM中的java编译器进行编译为.class文件。编译后的字节码文件主要分为两部分:常量池和方法字节码。常量池记录的是代码出现过的常量、类名、成员量以及符号引用(类引用、方法引用、成员变量引用);方法字节码中放的是各个方法的字节码
2、(运行)字节码由Java虚拟机运行。Java类运行的过程大概分为两个步骤:(1)类的加载(2)类的执行
根据下面的程序解释Java程序的编译和运行:
(1)在命令行上敲javac Test,会得到Test.class字节码文件,在命令行上敲java Test,系统会启动一个JVM进程,将Test.class文件中的类信息加载到运行时数据区的方法区中。
(2)JVM找到main方法中的主函数入口,main方法中第一条指令是HelloWorld hw = new HelloWorld();
,让JVM创建一个HelloWorld对象,但是方法区中还没有HelloWorld类的类信息,于是JVM马上加载HelloWorld类,将HelloWorld类信息放入方法区中。
(3)加载完HelloWorld类的信息后,JVM虚拟机就会在堆内存中为一个HelloWorld类实例分配内存,这个实例持有指向方法区的HelloWorld类的类型信息,其中,hw这个引用变量会自动放在栈中
(4)当使用hw.print()
的时候&#