Java Review (Java開發環境)
@
- 高階語言執行機制編譯型語言解釋型語言
- Java執行機制和JVM編寫編譯執行
- JDK
- JREJDK、JRE與JVM
- 編寫
- 編譯
- 執行
Java程式執行機制
高階語言執行機制
計算機高階語言按程式的執行方式可以分為編譯型和解釋型兩種。
編譯型語言
- 編譯型語言是指使用專門的編譯器,針對特定平臺(作業系統)將某種高階語言原始碼一次性“翻 譯”成可被該平臺硬體執行的機器碼(包括機器指令和運算元),幷包裝成該平臺所能識別的可執行性 程式的格式,這個轉換過程稱為編譯(Compile)。編譯生成的可執行性程式可以脫離開發環境,在特定 的平臺上獨立執行。
有些程式編譯結束後,還可能需要對其他編譯好的目的碼進行連結,即組裝兩個以上的目的碼 模組生成最終的可執行性程式,通過這種方式實現低層次的程式碼複用。 因為編譯型語言是一次性地編譯成機器碼,所以可以脫離開發環境獨立執行,而且通常執行效率較 高;但因為編譯型語言的程式被編譯成特定平臺上的機器碼,因此編譯生成的可執行性程式通常無法移植到其他平臺上執行;如果需要移植,則必須將原始碼複製到特定平臺上,針對特定平臺進行修改,至 少也需要採用特定平臺上的編譯器重新編譯。 現有的C、C++、Objective-C、Pascal等高階語言都屬於編譯型語言。
解釋型語言
- 解釋型語言是指使用專門的直譯器對源程式逐行解釋成特定平臺的機器碼並立即執行的語言。解釋 型語言通常不會進行整體性的編譯和連結處理,解釋型語言相當於把編譯型語言中的編譯和解釋過程混 合到一起同時完成。
可以認為:每次執行解釋型語言的程式都需要進行一次編譯,因此解釋型語言的程式執行效率通常 較低,而且不能脫離直譯器獨立執行。但解釋型語言有一個優勢:跨平臺比較容易,只需提供特定平臺 的直譯器即可,每個特定平臺上的直譯器負責將源程式解釋成特定平臺的機器指令即可。解釋型語言可 以方便地實現源程式級的移植,但這是以犧牲程式執行效率為代價的。 現有的Ruby、Python等語言都屬於解釋型語言。
Java執行機制和JVM
——Java是一種在編譯基礎上進行解釋執行的語言。
Java語言的執行需要經歷三大步:「編寫、編譯、執行。」
編寫
編寫程式就是由開發人員編寫程式碼,是.java檔案。
編譯
編譯步驟不會生成特定 平臺的機器碼,而是生成一種與平臺無關的位元組碼(.class檔案)。這種位元組碼不是可執 行性的,必須使用Java直譯器來解釋執行。因此可以認為:Java語言既是編譯型語言,也是解釋型語 言。或者說,Java語言既不是純粹的編譯型語言,也不是純粹的解釋型語言。Java程式的執行過程必 須經過先編譯、後解釋兩個步驟,
執行
在這裡插入圖片描述
計算機執行程式的最底層是從記憶體中取出指令執行,Java語言裡負責解釋執行位元組碼檔案的是Java虛擬機器,即JVM (Java Virtual Machine)——JVM是可執行Java位元組碼檔案的虛擬計算機。使用Java編譯器編譯Java程式,生成的是與平臺無關的位元組碼,這些位元組碼不面向任何具體平臺,只面向JVM。不同平臺上的JVM都是不同的,但它們都提供了相同的介面。JVM是Java程式 跨平臺的關鍵部分,只要為不同平臺實現了相應的虛擬機器,編譯後的Java位元組碼就可以在該平臺上執行。顯然,相同的位元組碼程式需要在不同的平臺上執行,這幾乎是“不可能的”,只有通過中間的轉換器才可以實現,JVM就是這個轉換器。
JVM是一個抽象的計算機,和實際的計算機一樣,它具有指令集並使用不同的儲存區域。它負責執行指令,還要管理資料、記憶體和暫存器。
Oracle公司制定的Java虛擬機器規範在技術上規定了 JVM的統一標準,具體定義了 JVM的如下細節:
❝
* 指令集 * 暫存器 * 類檔案的格式 * 棧 * 垃圾回收堆 * 儲存區
❞
在這裡插入圖片描述
Oracle公司制定這些規範的目的是為了提供統一的標準,最終實現Java程式的平臺無關性。
Java開發工具包
win10系統安裝與配置jdk1.8
剛開始學習的時候,JDK和JRE的概念會有些模糊。
JDK
JDK是Java Development Kit,簡稱java開發工具包。 JDK是java的核心。它包括java執行環境、一堆java工具盒java基礎的類庫(rt.jar)。 JDK包含JRE的全部內容外,還包含開發者用以編譯、除錯和執行java程式的工具。
在這裡插入圖片描述
JDK安裝目錄
JRE
JRE是JavaRuntimeEnvironment,java執行時環境,它是java程式執行所必須的環境集合,主要由java虛擬機器、java平臺核心類和若干支援檔案組成。其不包含開發工具、編譯器、偵錯程式以及其他工具。
在這裡插入圖片描述
JRE安裝目錄
JDK、JRE與JVM
JDK是整個JAVA的核心,包括了Java執行環境JRE(Java Runtime Envirnment),JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是執行Java程式的必要元件。
❝
JDK
❝
JRE
❝
JVM
❞ ❞ ❞
HelloWord
編寫
public class HelloWorld{ // Java程式的入口方法,程式將從這裡開始執行 public static void main(String[] args){ //向控制檯列印一條語句 System.out.printin("Hello World!”); } } 複製程式碼
編譯
javac -d . HelioWorld.java 複製程式碼
執行該命令後,在該路徑下生成一個HelloWorld.class檔案。
執行
java HelloWorld 複製程式碼