標籤:src ima 簡單 一個 虛擬 static class 方法區 div
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 hello world