深入理解java虛擬機(jī)--讀書筆記

1.java技術(shù)體系

java Card:
  • 支持一些java小程序(Applets)運(yùn)行在小內(nèi)存設(shè)備(如智能卡)上的平臺(tái)。
java ME(Micro Edition):
  • 支持java程序運(yùn)行在移動(dòng)終端(手機(jī)、PAD)上的平臺(tái),對(duì)java API有所精簡(jiǎn),并加入了針對(duì)移動(dòng)端的支持,這個(gè)版本以前稱為J2ME
java SE(Standard Edition):
  • 支持面向桌面級(jí)應(yīng)用(如Windows下的應(yīng)用程序)的java平臺(tái),提供了完整的Java核心API,這個(gè)版本以前稱為J2SE。
java EE(Enterprise Edition):
  • 支持使用多層架構(gòu)的企業(yè)應(yīng)用(如ERP、CRM應(yīng)用)的java平臺(tái),除了提供java SE API外,還對(duì)其做了大量的擴(kuò)充并提供了相關(guān)的部署支持,這個(gè)版本以前稱為J2EE。

2.java發(fā)展史

java技術(shù)發(fā)展時(shí)間線
  • 1991年4月,James Gosling博士領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開始啟動(dòng),此計(jì)劃的目的是開發(fā)一種能夠在各種消費(fèi)性電子產(chǎn)品(機(jī)頂盒、冰箱、收音機(jī))上運(yùn)行的程序架構(gòu),這款產(chǎn)品就是java語(yǔ)言的前身:Oak(橡樹)。

  • 1995年5月23日,Oak語(yǔ)言改名為java,并在SunWorld大會(huì)上正式發(fā)布java1.0版本,java語(yǔ)言首次提出了“Write Once, Run Anywhere的口號(hào)”。

  • 1996年1月23日,jdk1.0發(fā)布,標(biāo)志著java擁有了第一個(gè)正式版本的運(yùn)行環(huán)境,并提供了一個(gè)純解釋執(zhí)行的java虛擬機(jī)(Sun Classic VM)。

  • 1996年5月底,Sun公司與舊金山舉行了首屆JavaOne大會(huì)。

  • 1997年2月19日,jdk1.1發(fā)布,jdk1.1包含了JDBC、JAR文件格式、JaveBean、RMI等技術(shù),在語(yǔ)言上發(fā)展了內(nèi)部類(Inner Class)、反射(Reflection)等技術(shù)。

  • 1998年12月4日 jdk1.2發(fā)布(代號(hào)Playground),在jdk1.2中sun將技術(shù)體系拆分為J2SE、J2EE、J2ME三個(gè)大塊。jdk1.2中java虛擬機(jī)首次內(nèi)置了JIT(Just In Time),1.2版本并存了Classic VM、HotSpot VM、Exact VM。語(yǔ)法上添加了strictfp關(guān)鍵字及Collection集合類。

  • 2000年5月8號(hào),jdk1.3發(fā)布,jdk1.3改進(jìn)了數(shù)學(xué)運(yùn)算及Timer API等。jdk1.3后HopSpot成為Sun jdk默認(rèn)虛擬機(jī)。

  • 2002年2月13號(hào),jdk1.4發(fā)布,jdk1.4發(fā)布了如正則表達(dá)式、NIO、日志類等的技術(shù)特性,jdk1.4是java真正走向成熟的一個(gè)版本。

  • 2004年9月30號(hào),jdk1.5發(fā)布,jdk1.5在java語(yǔ)法上做出了較大改進(jìn),新添加了如自動(dòng)裝箱、泛型、動(dòng)態(tài)注解、枚舉、可變長(zhǎng)參數(shù)、遍歷循環(huán)(foreach循環(huán))等特性。jdk1.5改進(jìn)了java內(nèi)存模型JMM,并提供了concurrent并發(fā)包。

  • 2006年12月11號(hào),jdk1.6發(fā)布,并啟用了Jave SE6、Java EE6、JavaME6命名方式。jdk改進(jìn)包含了動(dòng)態(tài)語(yǔ)言支持、編譯API等。jdk1.6對(duì)虛擬機(jī)鎖同步、垃圾收集、類加載等進(jìn)行了優(yōu)化。

  • 2009年2月19號(hào),jdk1.7發(fā)布,改進(jìn)包含:新的GI收集器、加強(qiáng)對(duì)非java語(yǔ)言的調(diào)用支持、升級(jí)類加載架構(gòu)等。

  • 2014年3月18號(hào),jdk1.8發(fā)布,改進(jìn)包含:Lambda 表達(dá)式、函數(shù)式接口、方法與構(gòu)造函數(shù)引用、Predicate接口、Function 接口等。java虛擬機(jī)的改進(jìn)包含:減少指定字段上的緩存爭(zhēng)用、移除Permanent Generation(永久代)、移除一些很少使用的垃圾回收器組合、提供更多的驗(yàn)證錯(cuò)誤信息、減少類元數(shù)據(jù)所占內(nèi)存、支持創(chuàng)建小型虛擬機(jī)(3M以下)、添加3個(gè)內(nèi)存有序化的內(nèi)建函數(shù)(fence intrinsics)

  • 2016年9月,jdk1.9發(fā)布,改進(jìn)包含:java平臺(tái)級(jí)模塊系統(tǒng)、Linking、JShell : 交互式 Java REPL、HTTP/2、多版本兼容jar等。

3.java虛擬機(jī)發(fā)展歷史

  • Sun Classic /Exact VM
  • Sun HotSpot VM
  • Sun Moblie-Embedded VM / Meta-Circular VM
  • BEA JRockit /IBM J9 VM
  • Azul VM /BEA Liquid VM
  • Apache Harmony /Google Android Dalvik VM
  • Microsoft JVM及其他
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容