Java概述
Java由來
Java是由James Gosling設計的。最初是為了網聯化的市場前景而開啟的專案計劃,起名為Oak,但這個市場並不友好,這個專案就被擱置了;但在1994 年,該專案小組看到了瀏覽器在未來的發展前景,於是決定將 OaK 應用於全球資訊網,就這樣Java誕生了。隨著Java的發展,體系越來越完整;截止到2024年9月,已經到JDK23了。
Java名詞解釋
JDK、JRE、JVM
JVM(Java Virtual Machine):Java虛擬機器(bin目錄下的檔案),其就是一個執行在作業系統上的一個軟體,用於將Java編譯後的 .class 檔案(位元組碼檔案)轉化成機器碼(二進位制程式碼檔案)。但有一個問題就是:實際的物理機器不同(Windows、Linux等),二進位制程式碼的編碼方式也不一樣,這樣就沒辦法統一轉化成一種形式的機器碼了;所以Java的一次編譯、處處執行實際上靠的是特定機器上的JVM來轉化成該機器可執行的二進位制檔案,所以不同物理機器(不同作業系統)所用的JVM不一樣,下載的時候需要注意。這裡可以說一下:其實所謂的跨平臺執行的道理就是將與特定平臺無關的邏輯單獨抽離出來整合(編譯、位元組碼檔案),將不能跨平臺的部分按照特定平臺的需求依次實現(機器碼、二進位制檔案)。JVM需要學習的內容非常多,也很有趣,但這裡先簡單瞭解一下它是用來將位元組碼轉化為特定平臺的機器碼即可(後面再專門學)。
JRE(Java Runtime Environment):Java執行環境(bin目錄和lib目錄下的檔案),JRE = JVM + Java核心類庫,在編譯後的位元組碼檔案中包含一些依賴的類庫,為了將這些引入的類庫和該位元組碼檔案整合,這就需要JRE出手了,它包含了JVM和lib下Java包含的核心類庫,幫助JVM將位元組碼轉化為機器碼。
JDK(Java Development Kits):Java開發工具包(整個下載下來的JDK),JDK = JRE + Java開發工具集 = JVM + Java核心類庫 + Java開發工具集,JDK包括編譯、轉化、打包工具等,是整個Java程式執行的必要程式集。
JSR、JCP
JCP(Java Community Process):是一個開放的國際組織,主要由Java開發者以及被授權者組成,職能是發展和更新,監督Java的發展,設立Java規範標準(看起來還是相當正式的,Java還是龐大的)。
JSR(Java Specification Requests):Java 規範請求(或者活規範提案)。這個請求(提案)是提給 JCP 的(Java Community Process);只能說這麼多人一起努力,才有了Java現在這樣的水平。
Java SE、Java EE、Java ME
- Java SE:Standard Edition
- Java EE:Enterprise Edition
- Java ME:Micro Edition
簡單來說,Java SE就是標準版,包含標準的JVM和標準庫,而Java EE是企業版,它只是在Java SE的基礎上加上了大量的API和庫,以便方便開發Web應用、資料庫、訊息服務等,Java EE的應用使用的虛擬機器和Java SE完全相同。Java ME就和Java SE不同,它是一個針對嵌入式裝置的“瘦身版”,Java SE的標準庫無法在Java ME上使用,Java ME的虛擬機器也是“瘦身版”。