JavaSE核心技術
Java的初識
JDK,JRE和JVM
1.簡介
-
JDK(Java Development Kit)
定義:全稱Java Development Kit,是Java語言的軟體開發工具包,它提供了Java的開發環境和執行環境。
內容:包括Java執行環境(JRE)、Java工具(如javac編譯器、java執行命令等)和Java基礎類庫。
-
JRE(Java Runtime Environment)
定義:全稱Java Runtime Environment,是Java的執行環境,提供了在計算機上執行Java應用程式所需的最小環境。
內容:包括Java虛擬機器(JVM)、Java平臺核心類庫和支援檔案。
-
JVM(Java Virtual Machine)
定義:全稱Java Virtual Machine,是Java虛擬機器的縮寫,是一個虛構出來的計算機,用於執行Java位元組碼。
內容:包括一套位元組碼指令集、一組暫存器、一個棧、一個垃圾回收堆和一個儲存方法域。
2.區別
-
JDK:主要用於Java程式的開發,提供了從編寫、編譯到執行Java程式所需的一切工具和環境。
-
JRE:用於執行Java程式,提供了Java程式執行時的必要環境,包括JVM和Java核心類庫。
-
JVM:是Java程式執行的核心,負責將Java位元組碼轉換為機器碼並執行,實現了Java的跨平臺特性。
3.聯絡
- 包含關係:JDK包含了JRE,而JRE又包含了JVM。這種關係可以表示為JDK > JRE > JVM。
- 功能互補:JDK提供了完整的Java開發環境,包括開發工具和執行環境;JRE提供了Java程式執行時的必要環境;JVM則是Java程式執行的核心,負責將Java位元組碼轉換為機器碼並執行。這三者共同構成了Java程式的開發、執行和執行的完整體系。
- 跨平臺特性:JVM是Java跨平臺的核心,透過JVM,Java程式可以在不同的作業系統上執行而無需修改原始碼。這種跨平臺特性是Java語言的重要優勢之一。
JDK的安裝配置
安裝
- 建議:安裝路徑不要有中文或者空格等特殊符號。
安裝步驟:
-
雙擊jdk-8_windows-x64_bin.exe檔案,並單擊下一步。
-
修改安裝路徑,自定義。
-
將安裝路徑修改為D:\develop_tools\jdk\jdk-版本號\,並單擊下一步。
-
稍後幾秒,安裝完成。
配置環境變數
- 開啟系統屬性:在Windows中,右鍵點選“此電腦”或“計算機”,選擇“屬性”,然後點選“高階系統設定”,再點選“環境變數”。
- 配置JAVA_HOME在:“系統變數”區域,點選“新建”按鈕。變數名填寫
JAVA_HOME
,變數值填寫JDK的安裝路徑(例如C:\Program Files\Java\jdk-11.0.13
)。 - 配置PATH:找到名為
Path
的系統變數,點選“編輯”按鈕。在變數值的末尾新增%JAVA_HOME%\bin
(注意前面要有分號分隔符)。 - 儲存並退出:點選“確定”按鈕儲存更改,並關閉所有開啟的對話方塊。
驗證安裝
- 開啟命令提示符(CMD),輸入
java -version
和javac -version
命令,如果安裝成功,將顯示Java和Java編譯器的版本資訊。
Java編譯和執行的命令
編譯命令
編譯命令:javac
-
功能:將Java原始檔(.java檔案)編譯成Java位元組碼檔案(.class檔案)。
-
用法:在命令列中,進入包含Java原始檔的目錄,然後輸入
javac 檔名.java
。例如,如果有一個名為Demo.java
的原始檔,則編譯命令為javac Demo.java
。注意事項
-
確保JDK已經正確安裝,並且
javac
命令在系統的PATH環境變數中。 -
編譯時,如果原始檔中有語法錯誤,
javac
會報錯,並指出錯誤的位置。 -
編譯成功後,會在同一目錄下生成相應的.class檔案。
執行命令
執行命令:java
-
功能:執行Java位元組碼檔案(.class檔案),由Java虛擬機器(JVM)對位元組碼進行解釋和執行。
-
用法:在命令列中,進入包含.class檔案的目錄,然後輸入
java 類名
(注意不帶.class字尾)。例如,如果有一個名為Demo
的類(即Demo.class檔案),則執行命令為java Demo
。注意事項
-
確保JDK已經正確安裝,並且
java
命令在系統的PATH環境變數中。 -
執行時,JVM會在當前目錄的上一級目錄(即類路徑)中查詢類檔案,如果找不到,會報錯。
-
如果需要指定類路徑,可以使用
-cp
或-classpath
選項,後跟類路徑的值。
總結
JDK的編譯和執行命令是Java開發中的基礎命令,掌握它們對於進行Java程式設計至關重要。編譯命令javac用於將Java原始檔編譯成位元組碼檔案,而執行命令java則用於執行這些位元組碼檔案。在使用這些命令時,需要注意JDK的安裝和配置,以及命令的語法和用法。
Java跨平臺原理
1. 編譯成中間程式碼(位元組碼)
- 編譯過程:Java原始碼(.java檔案)首先被編譯成中間程式碼,即位元組碼(.class檔案)。這一過程是透過Java編譯器(javac)完成的。
- 平臺無關性:位元組碼是一種與特定平臺無關的程式碼,它既不是針對任何特定硬體的機器碼,也不是依賴於任何作業系統的程式碼。因此,位元組碼可以在任何安裝了Java虛擬機器(JVM)的系統上執行。
2. Java虛擬機器(JVM)
- 定義與功能:JVM是一個可以執行Java位元組碼的虛擬計算機。它模擬了各種計算機功能,使得Java程式能夠在不同平臺上執行而無需修改原始碼。
- 平臺特定實現:雖然JVM本身是一個規範,但每個作業系統都有對應的JVM實現。這些實現將位元組碼轉換為特定平臺的機器碼,從而實現了Java程式的跨平臺執行。
- 效能最佳化:JVM還包含了即時編譯器(JIT),它可以將頻繁執行的位元組碼編譯成本地機器碼,以提高程式的執行效率。
3. 豐富的標準庫和API
- 標準庫:Java提供了一個豐富的標準庫,這些庫是用Java編寫的,對所有平臺都是相同的。這意味著Java程式可以利用這些標準庫來進行檔案操作、網路通訊等,而不必擔心底層作業系統的差異。
- 抽象作業系統介面:Java還提供了一套抽象的介面來代表底層作業系統的功能,這樣Java程式就可以透過這些介面與作業系統互動,而不需要直接與作業系統打交道。
4. 跨平臺性帶來的優勢
- 靈活性:Java程式只需要編譯一次,就可以在任何支援JVM的作業系統上執行,這大大提高了開發效率和靈活性。
- 廣泛應用:由於Java的跨平臺性,它被廣泛用於開發各種型別的應用程式,包括桌面應用程式、Web應用程式、移動應用程式以及企業級應用程式等。
5. 注意事項
- JVM的特定性:雖然Java程式本身是跨平臺的,但JVM並不是。不同的作業系統需要安裝對應版本的JVM才能執行Java程式。
- 效能差異:開發者需要考慮到不同平臺上可能存在的效能差異,以及確保使用的第三方庫和工具也是跨平臺的。