java初識

白11發表於2024-07-25

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 成為流行程式語言的重要原因之一。