精品一区二区AV天堂,精品久久久久久综合日本,久久人搡人人玩人妻精品首页,麻豆国产精品VA在线观看不卡

首頁 > 購物 > 正文

快速認識Java虛擬機參數 存儲程序的類文件

2020-12-09 11:06:58來源:米粒教育

Java虛擬機也是一個可運行的程序,它或者全部用軟件方式來實現,或者采用硬件或軟件結合的方式來實現。當啟動一個Java程序時,就會運行一個

Java虛擬機也是一個可運行的程序,它或者全部用軟件方式來實現,或者采用硬件或軟件結合的方式來實現。當啟動一個Java程序時,就會運行一個Java虛擬機,每個Java程序都會對應一個Java虛擬機,運行中的Java虛擬機,也可以稱為Java虛擬機的一個實例。Java程序運行結束關閉后,運行這個程序的Java虛擬機也會關閉。例如,如果在電腦運行了三個Java程序,就會有三個Java虛擬機在運行。

java程序與虛擬機實例關系圖

每個Java程序的主類都會有一個main()方法,虛擬機啟動Java程序時,它會調用主類的main()方法作為Java程序的入口,這個main()方法的訪問權限必須是public,并且是無返回值的靜態方法,方法的參數是一個String類型的數組。

下面是HelloWorld程序代碼:

HelloWorld程序只有一個HelloWorld類,HelloWorld類內部必須有一個main()方法,當HelloWorld程序運行時,虛擬機會調用HelloWorld類的main()方法作為HelloWorld程序的入口。

在Windows命令行窗口運行HelloWorld程序的命令如下:

java HelloWorld

其中“java”就是虛擬機程序名稱,Windows會啟動一個虛擬機實例,“java”后面的“HelloWorld”是包含main()方法已編譯的class文件名稱,虛擬機啟動后,會加載HelloWorld.class文件到內存,并調用HelloWorld.class文件內的main()方法,HelloWorld程序進入運行狀態,main()方法內部的語句會得到執行,當main()方法內部的所有語句都執行完成后,main方法返回,HelloWorld程序結束,運行這個HelloWorld程序的虛擬機實例也會退出。

虛擬機的體系結構

虛擬機由類加載器、運行數據區、執行引擎、本地方法接口、本地方法庫組成。虛擬機體系結構如下圖所示:

當虛擬機運行一個程序時,它會使用類加載器加載Java程序的類文件,并且在計算機內申請一塊內存區域,作為運行數據區。用來存儲程序的類文件、創建的靜態對象和實例對象、方法、局部變量、中間結果、方法的返回值等內容。為了管理和有效地利用已申請的內存區域,虛擬機把內存劃分為堆、棧、方法區、程序計數器、本地方法棧。

運行數據區的方法區存儲了包含程序使用import語句導入的JDK類庫在內的類信息、各種常量、靜態變量、代碼編譯后的字節碼等內容;本地方法棧用來存儲調用非java代碼編寫的方法(Native Method)使用到的數據,這些方法包括用其它語言編寫的第三方庫和操作系統自身提供的API;堆用來存儲程序中動態創建的類實例對象;棧用來存儲程序調用方法過程中,使用到的參數、局部變量、中間結果、返回值等內容;程序計數器用來存儲當前程序執行的指令(指令可以理解為類中的可執行代碼)。

執行引擎負責執行方法區中的字節碼,在執行字節碼的過程中會在堆中創建實例對象,在棧中存取當前方法調用的參數、局部變量、中間結果、返回值等,也會通過本地方法接口調用第三方庫方法和操作系統自身提供的API。

關鍵詞: Java 虛擬機 參數

責任編輯:hnmd004

澳门永久AV免费网站| 永久免费Av无码不卡在线观看 | 乱码精品一区二区三区| 国模大尺度啪啪| 国产香蕉尹人综合在线观看| 久久午夜夜伦鲁鲁片免费无码|