美文网首页
深入理解Hello World

深入理解Hello World

作者: Mango_lxh | 来源:发表于2018-09-07 17:24 被阅读0次
    public class HelloWord {
        public static void main(String[] args) {
            String s;
            s="Hello World!";
    
            System.out.println("s="+s);
        }
    }
    
    

    程序的执行流程:

    1. 编译器将 HelloWorld.java 源文件编译成字节码文件 HelloWorld.class ,再由 JVM 将
      这个类加载到方法区的类代码内存区域。
    2. 虚拟机先通过类找到main方法(程序的入口方法),然后把一个String[](字符串数组对象:空数组)类型的参数的地址传递到到主方法的args变量中,并在栈区为args开辟内存空间。
    3. 在栈区开辟一个空间存储一个String类型的变量s,s的值是垃圾值
    4. 在方法区的常量数据区开辟空间,属性即为:Hello World!,方法即为:toString(),变量s存储Hello World!对象的地址。
    5. 虚拟机找到标准类库中的System.class类并加载到内存中(即方法区的类代码区中),并调用println()方法将变量s的值打印到屏幕上(System.out为标准字节输出流对象)。

    内存分析图:

    2018-09-07_172054.png

    里面涉及的源文件,类文件,对象,方法,变量个数

    1个java文件:HelloWorld.java
    5个class类: HelloWorld.class、String[].class、String.class、System.class 、object.class
    5个对象: “Hello World!”、String[]、System.out、System.in、System.error
    2个变量:args、s
    3个方法:main()、toString()、println()

    相关文章

      网友评论

          本文标题:深入理解Hello World

          本文链接:https://www.haomeiwen.com/subject/ecbcgftx.html