zoukankan      html  css  js  c++  java
  • 深入理解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()

  • 相关阅读:
    ASP的生成指定格式的GUID
    Principle
    Email icon generator
    Google 's Gmail
    防火墙
    注释
    对敏捷开发方法的一些疑问
    Faq about multimedia
    BSTR、char*和CString转换
    dshow配置环境vc6
  • 原文地址:https://www.cnblogs.com/xiaoming0601/p/5550802.html
Copyright © 2011-2022 走看看