HelloWorld程序的执行流程

HelloWorld程序的执行流程

1.详细分析从编译到执行到输出结果的过程:

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

HelloWorld的具体执行过程:

  1. 先通过编译器(javac)编译HelloWorld.java文件,找到主类HelloWorld里面有多少个类(多个类中只有一个类可以被public修饰)就编译成多少个.class字节码文件

  2. 然后通过虚拟机(JVM)解释含有主函数的.class文件(HelloWorld.class)。通过main()方法获得程序的入口,此时通过三个允许(static静态绑定类,用public确定方法,再用void确定不处理返回值)才可以进入并执行该程序。

  3. 主方法在内存的栈区的开辟工作空间,开始main方法的时候会到标准类库调用String[] ,String , System标准字节输入输出流,Object等这几个类的字节码文件加载到方法区的类代码段中。

  4. 在堆区创建一个空(String[ ])数组对象从栈区把args传过来到堆的空数组对象String[ ]中。

  5. 因为String s 是成员变量所以在主方法的工作区间创建String类型的 s 变量。

  6. 定义了一个”Hello world !”常量对象存放在方法区的常量值数据区并且会创建相应的toString()方法,栈区的s变量指向了 这个方法区的常量。

  7. 最后执行输出语句输出其实是s的地址,但是s指向(存储)的是“Hello world !”常对象的地址,而且该常对象覆盖重写了父类的toString()方法,所以最后输出的结果是:Hello world !

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()

在这里插入图片描述

版权声明:本文为CSDN博主「never疯」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40574571/article/details/97552746

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值