1. 程式人生 > >深入理解JVM學習筆記(五、JAVA發展歷史)

深入理解JVM學習筆記(五、JAVA發展歷史)

一、JDK Version 1.0

 開發代號為Oak(橡樹),於1996-01-23發行  

     其提出了“Write Once,Run Anywhere”的口號

二、JDK Version 1.1

於1997-02-19發行。

引入的新特性包括:

  • 引入JDBC(Java Database Connectivity);
  • 引入jar檔案格式,沿用至今;
  • 引入Java Bean;
  • 引入RMI(Remote Method Invocation);
  • 支援內部類
  • 引入反射(僅用於內省)。

三、J2SE Version 1.2

開發代號為Playground(操場),於1998-12-08發行。

將java體系分為三個方向

    面向桌面應用開發的J2SE(Java 2 Platform, Standard Edition)、


    面向企業級開發的J2EE(Java 2 Platform, Enterprise Edition)、
    面向手機等移動終端開發的J2ME(Java 2 Platform, Micro Edition)

引入的新特性包括:

  • 引入集合(Collection)框架;
  • 對字串常量做記憶體對映;
  • 引入JIT(Just In Time)編譯器;
  • 引入對打包的Java檔案進行數字簽名;
  • 引入控制授權訪問系統資源的策略工具;
  • 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D類庫;
  • 引入Java 外掛;
  • 在JDBC中引入可滾動結果集、BLOB、CLOB、批量更新和使用者自定義型別;
  • 在Applet中新增聲音支援。

四、J2SE Version 1.3

開發代號為Kestrel(紅隼),於2000-05-08發行。

  • 引入的新特性包括:
  • 引入Java Sound API;
  • jar檔案索引;
  • 對Java的各個方面都做了大量優化和增強。

五、J2SE Version 1.4

開發代號為Merlin(隼),於2004-02-06發行(首次在JCP下發行)。

Spring1.x也應運而生,不過期只支援xml配置。

引入的新特性包括:

  • XML處理;
  • Java列印服務;
  • 引入Logging API;
  • 引入Java Web Start;
  • 引入JDBC 3.0 API;
  • 引入斷言;
  • 引入Preferences API;
  • 引入鏈式異常處理;
  • 支援IPv6;
  • 支援正則表示式;
  • 引入Image I/O slot machine API。

六、Java Version SE 5.0

開發代號為Tiger(老虎),於2004-09-30發行。

本版本引入了註解,因此Spring2.x出現,支援註解。

引入的新特性包括:

  • 引入泛型;
  • 增強迴圈,可以使用迭代方式;
  • 自動裝箱與自動拆箱;
  • 型別安全的列舉;
  • 可變引數;
  • 靜態引入;
  • 元資料(註解);
  • 引入Instrumentation。

七、Java Version SE 6

開發代號為Mustang(野馬),於2006-12-11發行。

11.13日sun公司宣佈將java開源。

引入的新特性包括:

  • 支援指令碼語言;
  • 引入JDBC 4.0 API;
  • 引入Java Compiler API;
  • 可插拔註解;
  • 增加對Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支援;
  • 繼承Web Services;
  • 做了很多優化。

八、Java  SE 7

開發代號是Dolphin(海豚),於2011-07-28發行。

引入的新特性包括:

  • switch語句塊中允許以字串作為分支條件;
  • 在建立泛型物件時應用型別推斷;
  • 在一個語句塊中捕獲多種異常;
  • 支援動態語言;
  • 支援try-with-resources;
  • 引入Java NIO.2開發包;
  • 數值型別可以用2進位制字串表示,並且可以在字串表示中新增下劃線;
  • 鑽石型語法;
  • null值的自動處理。

九、Java SE 8

Java SE 8發行於2014年3月18日,代號culture,這是一個在Java歷史上的重大發布

Java SE 8 新特性:

  • Lambda Expressions(Lambda表示式)
  • Pipelines and Streams(管道和流)
  • Date and Time API(日期和時間API)
  • Default Methods(介面可以有預設方法)
  • Type Annotations(型別註解)
  • Nashhorn JavaScript Engine
  • Concurrent Accumulators(並行累加器)
  • Parallel operations(平行作業)
  • PermGen Error Removed
  • TLS SNI

十、Java SE 9

Java SE 9將發行於2018年7月

Java SE 9 新特性:

  • 敬請期待

相關推薦

深入理解JVM學習筆記(JAVA發展歷史)

一、JDK Version 1.0 開發代號為Oak(橡樹),於1996-01-23發行       其提出了“Write Once,Run Anywhere”的口號二、JDK Version 1.1於1997-02-19發行。引入的新特性包括:引入JDBC(Java Dat

深入理解JVM學習筆記(一總覽)

1、JVM歷史2、JVM記憶體結構3、JVM垃圾回收機制4、JVM效能監控工具5、JVM效能調優案例時間6、JVM類檔案結構7、JVM類載入機制8、JVM位元組碼執行引擎9、JVM虛擬機器編譯及其執行時

深入理解JVM學習筆記(十物件的建立)

下圖是JAVA虛擬機器物件的建立過程: 現在我們就以下幾點說明物件的建立: 1、給物件分配記憶體 給物件分配記憶體有指標碰撞和空閒列表兩種方式。具體描述如下圖所示。按時 2、執行緒安全性問題         無論是指標碰撞還是空閒列表,在高併發情況下都有可能存線

深入理解JVM學習筆記(二十六JVM 記憶體分配----優先分配到eden&空間分配擔保)

一、優先分配到eden 我們寫一個程式來驗證物件優先分配到eden,原始碼如下: package com.zjt.test.jvm008; public class Main { public static void main(String[] args) { b

深入理解JVM學習筆記(二十七JVM 記憶體分配----大物件直接分配到老年代)

一、驗證 首先我們編寫如下程式 package com.zjt.test.jvm008; public class Main { public static void main(String[]

深入理解JVM學習筆記(十九JVM 垃圾回收機制---如何判斷物件是否為垃圾【引用計數法】)

一、引用計數法         引用計數演算法作為垃圾收集器最早的演算法,有其優勢,也有其劣勢,雖然現在的JVM都不再採用引用計數演算法進行垃圾回收【例如Sun的Java hotspot採用了火車演算法進行垃圾回收】,但這種演算法也並未被淘汰,在著名的單程序高併發快取Red

深入理解JVM學習筆記(十七物件的訪問定位)

        之前我們理解java棧堆時可能會說棧中儲存指標,指向堆中的物件地址。其實這種說法是不嚴謹的,其一是java中沒有指標的概念,其二是棧中不一定儲存物件的地址,也可能是其他地址。那麼問題來了,物件是如何進行訪問定位的呢。         虛擬機器棧是 java方

深入理解JVM學習筆記(二十二JVM 垃圾回收機制---如何回收垃圾---回收策略【複製演算法】)

        上一節我們講到了標記-清除演算法因為需要進行兩次記憶體掃描導致效率不高,那麼這一節我們介紹一種複製演算法,比較好的解決了這個問題。        講複製演算法前,我們先回顧一下JVM的記憶體結構。JVM記憶體大體分為兩大塊,分別為執行緒共享區、執行緒獨佔區。

深入理解JVM學習筆記(三十JVM 記憶體分配----逃逸分析與棧上分配)

一、概念 我們之前提到過,JVM堆已經不是物件記憶體分配的唯一選擇。 棧上分配就是java虛擬機器提供的一種優化技術,基本思想是對於那些執行緒私有的物件(指的是不可能被其他執行緒訪問的物件),可以將它們打散分配在棧上,而不是分配在堆上。分配在棧上的好處是可以在函式呼叫結束

深入理解Java虛擬機器學習筆記——四Java記憶體模型與多執行緒

一、Java記憶體模型 Java記憶體模型的意義:遮蔽掉各種硬體和作業系統的記憶體訪問差異,以實現Java程式在各種平臺上一致的記憶體訪問效果。 1、主記憶體與工作記憶體 Java記憶體模型的主要目標是定義程式中各個變數的訪問規則,即在虛擬機器中把變數儲存到記憶體和從記憶體

深入理解JVM閱讀筆記-內存溢出小結

list 小結 sof () add 表示 內存 保存 區域 JAVA系統除了程序計數器和虛擬機內存之外的其它幾個內存區域都有發生OutOfMemory(OOM)的可能。堆,棧,方法區,靜態常量池,直接內存,都是可能的。 1.Java堆溢出 Java堆用於存儲對象實例,只要

深入理解JVM(十一)——Java記憶體模型與執行緒

計算機運算的速度,與它的儲存和通訊子系統相差太大,大量的時間花費在磁碟IO,網路通訊和資料庫上。 衡量一個服務效能的高低好壞,每秒事務處理數TPS是最重要的指標。 對於計算量相同的任務,程式執行緒併發協調的越有條不紊,效率越高;反之,執行緒之間頻繁阻塞或是死鎖,將大大降低併發能力。

深入理解JVM虛擬機器():位元組碼指令簡介

Java 虛擬機器的指令由一個位元組長度的、代表著某種特定操作含義的數字(稱為操作碼)以及跟隨其後的零至多個代表此操作所需引數(運算元)而構成。由於 Java 虛擬機器採用面向運算元棧而不是暫存器的架構,所以大多數的指令都不包含運算元,只有一個操作碼。 1. 位元組碼與資料型別

深入理解JVM讀書筆記二:虛擬機器類載入機制

一、概述      虛擬機器把描述類的資料從class檔案載入到記憶體,並對資料進行校驗、轉換解析和初始化。最終形成可以被虛擬機器最直接使用的java型別的過程就是虛擬機器的類載入機制。      與那些在編譯時需要進行連線工作的語

深入理解JVM讀書筆記二:垃圾收集器與記憶體分配策略

一、判斷物件死亡的兩種常用演算法:                在堆裡面存放著java世界中幾乎所有的例項物件,垃圾收集器在堆進行回收前,第一件事情就是要確定哪些物件還存活著,哪些已經死去。 1、引

深入理解JVM(二):Java記憶體區域

執行時資料區域 Java虛擬機器在執行Java程式的過程中會把它所管理的記憶體劃分為若干個不同的資料區域。這些區域都有各自的用途,以及建立和銷燬的時間,有的區域隨著虛擬機器程序的啟動而存在,有些區域則依賴使用者執行緒的啟動和結束而建立和銷燬。根據《Java虛擬機

深入理解JVM虛擬機器4:Java class介紹與解析實踐

深入理解JVM虛擬機器4:Java class介紹與解析實踐 轉自https://juejin.im/post/589834a20ce4630056097a56 前言 身為一個java程式設計師,怎麼能不瞭解JVM呢,倘若想學習JVM,那就又必須要了解Class檔案,Class之

BI工具:tableau桌面版 視訊學習筆記(格式;註釋)

格式 選擇度量數值右鍵選擇format 或者在選單欄上選擇format裡的選項 (具體格式可以設定很多,比如金錢,日期,特殊符號等等也可以自定義,顏色,字型,大小,等等。) Fields為要更改格式的內容選項 標識註釋和點註釋 新增標識註釋或者點註釋

深入理解JVM學習筆記——-1JVM基本結構

轉載自:https://blog.csdn.net/singit/article/details/54920387?utm_source=blogkpcl11   什麼是jvm?JVM的基本結構, 也就是概述。說是概述,內容很多,而且概念量也很大, 不過關於概念方面,你不用擔心,我完全有信心

【讀書筆記JAVA基礎:1深入理解JVM

  通過《深入理解JAVA虛擬機器》和《深入理解計算機系統》兩本經典著作的學習,注重瞭解系統程序執行時記憶體結構的變化,以此徹底瞭解JVM虛擬機器在執行JAVA程式時的記憶體結構!       主要有三個方面:   &nb