當前位置:首頁 » 編程軟體 » jvm啟動和編譯

jvm啟動和編譯

發布時間: 2022-07-15 16:30:31

❶ 簡述java程序的編輯編譯和運行過程

第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。

如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。

第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入 2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。

特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法<clinit>都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。

(1)jvm啟動和編譯擴展閱讀:

Java整個編譯以及運行的過程相當繁瑣,本文通過一個簡單的程序來簡單的說明整個流程。

Java代碼編譯:是由Java源碼編譯器來完成;

Java位元組碼的執行:是由JVM執行引擎來完成

Java程序從源文件創建到程序運行要經過兩大步驟:

1、源文件由編譯器編譯成位元組碼(ByteCode)

2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。

❷ jvm的server參數是啟動時編譯整個包還是編譯將要運行的類

JVM的server參數影響的是JVM的行為,和包、類的編譯無關。

Java的編譯時在編譯期發生的,指的是從java文件編譯為class文件的過程,由編譯器編譯,生成class位元組碼文件。JVM只識別class文件,所以JVM沒有編譯過程,JVM的參數不影響class的編譯。

JVM的server參數指定的是以伺服器模式運行JVM,它會影響JVM的GC機制、演算法、JIT(Just in time,即時編譯)等。由於JVM的GC等行為會影響Java程序的響應速度、吞吐量、CPU運行效率。所以JVM提供-client和-server參數,以便在不同場景上使用不同演算法,讓程序運行更合理。一般伺服器端對響應速度要求不高,比如沒有界面,只負責計算,那麼-server模式比較好。但是在Client程序下,比如Swing程序,要求相應速度,那麼就開啟-client,防止GC時的假死。另外server和client對JIT等技術還稍微有影響。在開發時可以忽略。

不管server和client,JVM只有JIT涉及到編譯,JIT是把位元組碼編譯為機器碼,有很多技巧和演算法,但是和包和類是不沾邊的。

❸ 如何啟動JAVA里的JVM

方法如下:

1、虛擬機的啟動入口位於share/tools/launcher/java.c的main。

2、配置JVM裝載環境。

3、解析虛擬機參數。

4、設置線程棧大小。

5、執行Java main。

❹ jvm怎麼編譯運行類的

設置好環境變數後,運行cmd.exe,cd到你*.java目錄
使用命令:javac *.java來編譯java文件
java * 來運行文件。

❺ java編譯器和JVM有什麼區別

java編譯器把java源碼編譯成位元組碼 (.class文件).
jvm是在運行期將class文件編譯成機器碼文件.供程序運行.

❻ 關於JVM和編譯器

編譯為位元組碼的JAVA程序可以直接在JVM上運行,無需再次編譯.

C程序必須在不同的平台重新編譯,並且可能需要依據不同的系統修改程序中用到的數據類型.

❼ 「java編譯器」和「JVM」有什麼區別

java編譯器把java源碼編譯成位元組碼
(.class文件).
jvm是在運行期將class文件編譯成機器碼文件.供程序運行.

❽ java編譯和運行。

首先cd到你java文件存放的目錄,比如你的java文件的名稱為helloworld.java,在cmd中輸入javac
helloworld.java
敲擊回車,這個命令會將你的java文件編譯成class文件,然後在cmd框中輸入java
helloworld敲擊回車就能運行你的java文件輸出結果

❾ 用於啟動JVM運行java程序的java命令

JDK(Java Development Kit)即為Java開發工具包,包含編寫Java程序所必須的編譯、運行等開發工具以及JRE。開發工具如:用於編譯java程序的javac命令、用於啟動JVM運行java程序的java命令、用於生成文檔的javadoc命令以及用於打包的jar命令等等
JRE(Java Runtime Environment)即為Java運行環境,提供了運行Java應用程序所必須的軟體環境,包含有Java虛擬機(JVM)和豐富的系統類庫。系統類庫即為java提前封裝好的功能類,只需拿來直接使用即可,可以大大的提高開發效率。
JVM(Java Virtual Machines)即為Java虛擬機,提供了位元組碼文件(.class)的運行環境支持。
JDK、JRE、JVM關系如圖– 4 所示:

圖- 4
從圖示可以看出,JDK中包含了編譯、運行等開發工具及JRE,而JRE中包含了Java系統類庫及JVM,運行一個java程序所需要的最小環境即為JRE,而開發一個Java程序所需要的最小環境為JDK,因為JDK中還包含了很多用到的命令。

熱點內容
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734
上傳下載賺錢 發布:2024-09-08 06:14:51 瀏覽:258