1. 程式人生 > >【深入理解Java虛擬機器】學習小結

【深入理解Java虛擬機器】學習小結

第一章 走近Java

摘書

  1. Java各個版本新特性
  • 1.0:Java1.0提供了一個純解釋執行的Java虛擬機器實現(Sun Classic VM)。JDK1.0版本的代表技術包括:Java虛擬機器、Applet、AWT等。
  • 1.1:JDK1.1版的技術代表有:JAR檔案格式、JDBC、JavaBeans、RMI。Java語法也有了一定的發展,如內部類(Inner Class)和反射(Reflection)都是在這個時候出現的。
  • 1.2:Java技術體系開始分為3個方向,分別為J2SE、J2EE、J2ME。在這個版本中出現的代表性技術非常多,如EJB、Java Plus-in、Java IDL、Swing等,並且這個版本中Java虛擬機器第一次內建了JIT(Just In Time)編譯器(JDK1.2中曾並存過3個虛擬機器,Classic VM、HotSpot VM和Exact VM,其中Exact VM只能以外掛的形式使用JIT編譯器)。在語言和API級別上,Java添加了strictfp關鍵字與現在Java編碼之中極為常用的一系列Collections集合類。
  • 1.3:JDK1.3及其之後所有的版本預設虛擬機器是HotSpot VM。JDK1.3相對於JDK1.2的改進主要表現在一些類庫上(如數學運算和新的Timer API等),JNDI服務從JDK1.3開始被作為一項平臺級服務提供(以前JNDI僅僅是一項拓展),使用CORBA IIOP來實現RMI的通訊協議,等等。新添加了JavaSound類庫。
  • 1.4:JDK1.4同樣釋出了很多新的技術特性,如正則表示式、異常鏈、NIO、日誌類、XML解析器和XSLT轉換器等。
  • 1.5:JDK1.5在Java語法易用性上做出了非常大的改進。例如,自動裝箱、泛型、動態註解、列舉、可變長引數、遍歷迴圈(foreach迴圈)等語法特性都是在JDK1.5中加入的。在虛擬機器和API層面上,這個版本改進了Java的記憶體模型(Java Memory Model,JMM)、提供了java.util.concurrent併發包。
  • 1.6:JDK1.6的改進包括:提供動態語言的支援(通過內建Mozila JavaScript Rhino引擎實現)、提供編譯API和微信HTTP伺服器API等。同時,這個版本對Java虛擬機器內部做了大量改進,包括鎖與同步、垃圾收集、類載入等方面的演算法都有相當多的改動。
  • 1.7:JDK1.7的主要改進包括:提供新的G1收集器(G1在釋出時依然處在Experimental狀態,直至2012年4月的Update4中才正式“轉正”)、加強對非Java語言的呼叫支援、升級類載入架構等。

體會