一、Java跨平臺實現原理
上一節提到Java有一個特別重要的特性就是跨平臺,也叫做可移植性或與平臺無關性,這個特點也是很多開發人員選擇使用Java的原因之一。所謂跨平臺,指的是Java開發的程序不用做任何修改就可以在任意操作系統上正常運行。那Java是如何實現跨平臺的呢?接下來簡單的討論Java實現跨平臺的原理。
Java跨平臺原理圖
Java程序是無法直接在操作系統中執行的,Java為不同的操作系統設計了不同的JVM(Java 虛擬機)軟件開發需要學習什么,Java程序首先被當前系統的JVM進行翻譯,翻譯成當前操作系統可以理解的指令,這個過程也叫作編譯;之后操作系統根據指令完成程序的執行。JVM Java虛擬機是Java實現跨平臺的核心,它屏蔽了不同操作系統的差異性,對于開發人員來說不用考慮不同系統的差異,專注于業務功能實現即可。
注意:
1、不同操作系統的JVM是不同版本的。
操作系統上需要版本的JVM,Linux操作系統上需要Linux版本的JVM。
2、Java是跨平臺的,JVM不是跨平臺的。
3、跨平臺的優缺點:
優點:保證了平臺無關性,開發一次代碼即可在不同平臺上正常運行
缺點:為了保證跨平臺的實現,Java程序運行前需要JVM先進行編譯,再由操作系統來執行,相應的運行效率會降低。不過,Java如果用于大型網站后端程序開發,則在運行效率上的影響可以忽略不計。
二、JDK JRE JVM
在Java中經常會提到JDK、JRE、JVM,它們到底有什么區別和聯系呢?
JVM(Java )-Java虛擬機,是Java跨平臺的核心。
JRE(Java )-Java運行時環境,JRE=JVM+核心類庫。
JDK(Java Kit)-Java開發工具包,JDK=JRE+開發工具。
總結:JVM是核心,但是如果要開發Java程序,除了JVM,還需要Java提供的核心類庫以及開發工具,所以通常用的較多的是JDK,JDK中包含了JVM和核心類庫以及開發工具包。
三、JDK版本介紹
JDK是Java開發工具包,包含了JVM和核心類庫以及開發工具包。Sun公司在1995年發布Java后,在1996年發布了JDK的第一個版本JDK1.0,這是Java發展歷程中的重要里程碑,標志著Java成為一種獨立的開發工具。JDK1.0中包含了Java的基本核心類庫編譯Java程序的javac工具。
1997年2月,JDK1.1推出,該版本中對Java類庫進行了進一步的完善。
1998年12月,JDK1.2發布,在該版本中Java分成了三大體系,體現了Java的主流分類方式。
J2SE(Java 2 ):標準版,是J2ME和J2EE的基礎。
J2ME(Java2 Micro ):移動端的版本,主要應用于移動端的開發。
J2EE(Java ):企業版,主要應用于Java應用服務器開發。
JDK1.2的發布是Java發展過程中的一個重要的里程碑,標志著Java應用開始普及。
2000年5月,JDK1.3發布,引入了部分新特性以及對之前的版本做了大量優化和增強。
2002年2月,JDK1.4發布,在該版本中引入了更多的新特性,并大幅提升了Java的計算能力。
2004年9月,JDK1.5發布,該版本包含了很多非常重要的新特性,比如自動裝箱、自動拆箱、泛型的支持、可變參數等。為了紀念這個版本的重要性,將JDK1.5的版本直接提升至JDK5.0
2005年6月,JDK6發布,在該版本中將主流分類體系進行更名軟件開發需要學習什么,J2SE-,J2ME-,J2EE-。
2009年,甲骨文()宣布收購Sun公司,至此Java稱為公司的產品。2010年,公司推出了JDK7版本,該版本是被收購后推出的第一個版本,體現了Java已經成為一個成熟的企業級產品。
2014年,公司推出了JDK8的版本,新增表達式等新特性。
2017年,JDK9版本發布,該版本最重要的變化是實現了模塊化。
之后基本不到一年,JDK就會推出一個新版本,預計2023年JDK20會發布。不過后邊版本沒有大的變動,而目前市場上使用的較多的仍然是JDK7、JDK8版本居多。本系列采用JDK8的版本進行演示和講解。
思考:為什么不使用JDK最新的版本?
需要注意的是實際開發中往往不會使用最新的版本,新版本中可能會有一些未經測試出的漏洞,一旦使用中出現問題,解決起來會非常棘手,相對來說JDK8版本較為穩定。
四、補充
1、Java是開源的
2006年,Sun公司宣布將Java技術作為免費軟件對外發布,Java至此正式開源。所謂開源可以理解為開放源代碼,Sun公司正式發布Java平臺標準版的第一批源代碼,從2007年3月起,全世界所有的開發人員均可對Java源代碼進行修改。
開源使Java擁有了更多的使用者,社區也非常的活躍,一定程度上保證了Java的長期發展。初學者也可以通過學些Java源代碼提升自己的編程能力。
2、收購Sun公司
2009年,因為Sun公司內部的經營問題無法再繼續運營,(甲骨文)公司收購了Sun公司,Java從此成為公司的產品。之后公司內部有兩個Java版本,一個稱為 open JDK,仍然免費提供;另一個 JDK則是以收費的方式提供。相應的收費版本從性能、安全性上講都要好一些,但一般 open JDK就足夠使用了。