深入理解java中HelloWorld的执行流程

Posted 小明快点跑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解java中HelloWorld的执行流程相关的知识,希望对你有一定的参考价值。

HelloWorld.java是我们学习java的第一个程序,简单的再也不能简单了,可是里面的原理以及执行流程大家都知道吗?最近在复习java知识,特地钻研了一番分享给大家!

贴出HelloWorld的代码如下:

public class HelloWorld {
    public static void main(String[] args)
    {    
            String  s ;
              s = “Hello World!”;  //定义字符串s
          System.out.println(s); 
    }
}
    

分析内存图:

HelloWorld的具体执行过程:

1.执行HelloWorld.java文件,生成HelloWorld.class字节码文件;

2.虚拟机执行HelloWorld.class,将这个类加载到内存中(即方法区的类代码区中);

3. 虚拟机通过类找到HelloWorld的主方法(程序的入口方法),访问权限为public(公有可用),虚拟机传递String[](字符串数组对象:空数组)类型参数的地址到主方法的args中去,并在栈区为args开辟内存空间,返回一个void的返回值;

4.定义一个String(标准类库中的)类型的变量(在栈区开辟空间)s,s的值不确定(垃圾值,编译无法通过);

5. s = “Hello World!”,对象“Hello World!”在方法区的常量数据区开辟空间,属性即为:Hello World!,方法即为:toString(),变量s存放对象“Hello World!”的地址;

6. 虚拟机找到标准类库中的System.class类并加载到内存中(即方法区的类代码区中),System.out为标准字节输出流对象(),并调用println()方法将变量s的值打印到屏幕上。

 

PS: 虚拟机调用主方法时会创建三个默认对象:System.out(标准字节输出流对象)、System.in(标准字节输入流对象)和System.error(标准字节出错流对象).

以上共涉及:

1个java文件:HelloWorld.java

4个class类: HelloWorld.class、String[].class、String.class、System.class

5个对象: “Hello World!”、String[]、System.out、System.in、System.error

2个变量:args、s

3个方法:main()、toString()、println()

以上是关于深入理解java中HelloWorld的执行流程的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Java虚拟机——分代收集(Generational-Collection)算法

深入理解Java虚拟机——分代收集(Generational-Collection)算法

深入理解Java之jvm启动流程

《深入理解java虚拟机》笔记JVM调优(分代垃圾收集器)

深入理解Java内存结构

深入理解jvm--分代回收算法通俗理解