深入理解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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM