[javase學習筆記]-4.3 函數的內存加載過程

這節我們簡單學習java函數在內存中的加載和運行過程.

現在我們應該都知道,在dos命令行中我們運行一個java文件:

比如我們運行一個名爲FunctionDemo3.java的文件,我們在dos是這樣操作的:

/> javac FunctionDemo3.java --> FunctionDemo3.class

/> java FunctionDemo3

javac命令對FunctionDemo.java進行編譯,如果編譯通過,則會生成字節碼文件FunctionDemo3.class文件,這也就是java的運行程序.

java命令啓動了JVM,當啓動JVM之後,會自動尋找main方法,如果沒有就報錯.

這就是說如果沒有main方法,編譯是可能通過的,但是在運行時會找到錯誤.

我們就簡單的說說java運行程序是怎麼樣在內在中執行的,以下面的例子爲例

class FunctionDemo3 
{
	public static int add(int a,int b)
	{
		return a+b;
	}
	public static void main(String[] args) 
	{
		int x = add(3,5);//調用add方法,同時把3,5賦給形式參數a和b,然後把a和b的和賦給x
		System.out.println("x="+x);
	}
}
我們可以這樣簡單說一說這個過程:

虛擬機在啓動之後,然後在棧內存中劃分一部分空間;
先分配一個內存存放main方法,執行main函數,執行主函數中的第一句語句:x=add(3,5)
內存中變量x暫時未知,調用add方法;
內存再分配一個存放add方法的空間,同時把實際參數a和b進行運算;
然後把a+b的結果賦給變量x;
內存釋放add方法內存;
然後再繼續執行main函數中的第二名語句進行輸出;
最後內存釋放main方法的內存.


以後我們還會更加詳細的學習java運行程序在內存中的執行過程.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章