JAVA初識
1.JDK,JRE和JVM
1.1 JDK(Java Development Kit,Java開發工具包)
Java開發工具包。顧名思義,JDK是用於Java開發的一套工具包,裡面包含了Java的編譯器javac、Java程式打包工具jar、Java程式執行環境JRE、文件生成工具javadoc以及很多用於開發的工具,如除錯工具jdb等。
1.2 JRE(Java Runtime Environment,Java執行環境)
JRE是執行Java程式所需的環境,包括JVM以及Java類庫等。JRE是Java程式執行的實施場所,同時也提供了執行Java程式所必需的庫檔案。
1.3 JVM(Java Virtual Machine,Java虛擬機器)
JVM是Java執行環境的核心,它負責Java程式的執行。JVM是一個虛擬的計算機,它接收到位元組碼(編譯後的Java程式),然後解釋或編譯執行。
1.4 關係
JDK是最大的,它包含JRE,而JRE又包含JVM。
-
JDK是為了滿足Java開發人員的需要而建立的,其中包含開發工具和JRE。因此,如果需要編寫Java程式就需要JDK。
-
JRE是為了執行那些已經編寫好的Java程式而建立的,JRE中包含有JVM和Java類庫,但是並不包含其他開發工具,因此,如果你只需要執行Java程式,那麼你只需要JRE就可以了。
-
JVM就像一個橋樑,它負責將人編寫的Java程式碼轉化為機器可以執行的機器程式碼。
1.5區別
- JDK是開發工具,它讓程式設計師編寫Java程式。
- JRE是執行環境,它讓編寫好的Java程式可以被執行。
- JVM則是JRE的一部分,位於程式執行的最前沿,將位元組碼轉化為機器程式碼。
2.JDK的安裝配置
下載,安裝
配置環境
配置系統變數 變數名一般用JAVA_HOME 變數值為jdk路徑
在Path系統變數中新增%JAVA_HOME%\bin 和%JAVA_HOME%\jre\bin
完成後再命令提示符介面輸入javac驗證即可
3.Java編譯和執行的命令
3.1 編譯Java原始碼
使用javac命令可以將Java原始碼檔案編譯成位元組碼檔案(.class檔案)。
- 例:javac HelloWorld.java
將生成HelloWorld.class檔案
3.2 執行Java程式
使用java命令可以執行Java程式。
- 例java HelloWorld
將執行HelloWorld類的main方法,並顯示輸出
3.3 顯示Java版本資訊
檢視安裝的Java版本資訊,可以使用java -version命令
3.4 檢視Java系統屬性
使用java -D命令可以檢視Java虛擬機器的系統屬性。
例:要檢視Java虛擬機器的預設編碼,可以執行java -Dfile.encoding
3.5 JAR檔案操作
Java中的JAR(Java Archive)檔案是一種常見的歸檔檔案格式,通常用於打包Java類檔案和相關資源。以下是一些與JAR檔案有關的常用命令:
- 建立JAR檔案:
jar cvf MyJar.jar *.class
- 解壓JAR檔案:
jar xvf MyJar.jar
- 列出JAR檔案內容:
jar tf MyJar.jar
3.6 檢視執行緒和堆疊資訊
可以使用以下命令來檢視執行緒和堆疊資訊:
- 檢視執行緒資訊:
jps
- 檢視堆疊資訊:
jstack <PID>
其中,< PID > 是程序ID,可以使用jps命令獲取。
3.7 啟動Java Mission Control
ava Mission Control(JMC)是一個用於監視和管理Java應用程式的工具。可以使用以下命令啟動它:
jmc
這將開啟JMC圖形使用者介面,允許您監視Java應用程式的效能和行為。
4.Java跨平臺原理
ava 的 JAR(Java Archive)檔案之所以能夠跨平臺執行,主要是由於 Java 的設計理念和執行時環境的特點。我們詳細解析一下這個過程:
編寫一次,處處執行:Java 的設計理念是“Write Once, Run Anywhere”(WORA),即在任何平臺上都能執行同一段程式碼。為了實現這一點,Java 程式碼在執行之前會被編譯成一種叫做位元組碼(Bytecode)的中間形式。
虛擬機器(JVM):Java 位元組碼不是直接執行在硬體上的,而是在 Java 虛擬機器(JVM)上執行的。JVM 是一個可以在各種硬體和作業系統平臺上執行的軟體,它負責解釋和執行位元組碼。每個平臺都有適配該平臺的 JVM 實現,這樣 Java 程式就可以在不同的平臺上無縫執行。
JAR 檔案:JAR 檔案是一種壓縮包,它包含了 Java 應用程式或庫所需的類檔案(以 .class 形式存在,即編譯後的位元組碼檔案)、資原始檔和後設資料。由於 JAR 檔案中的內容是平臺無關的位元組碼,所以它可以在任何安裝了相容的 JVM 的平臺上執行。
標準庫:Java 還提供了一套豐富的標準庫(Standard Libraries),這些庫在不同的平臺上提供了一致的介面和實現。這意味著開發者可以使用這些標準庫來編寫應用程式,而不必擔心平臺的差異。
綜上所述,JAR 檔案之所以能跨平臺執行,是因為 Java 的設計使其程式能夠在任何安裝了 JVM 的系統上執行,而 JAR 檔案正是這種機制的一部分。這種設計極大地簡化了軟體的開發和部署過程,是 Java 成為流行程式語言的重要原因之一。