原文地址:www.sudo.ren/article/75?…java
根據不一樣的技術規範,Java劃分爲3中結構獨立但又相互依賴的技術分支:Java SE(標準版)、Java EE(企業版)、Java ME(精簡版)正則表達式
Java的發展,除了來自互聯網的崛起,還有Google選擇Java做爲Android操做系統(手持移動設備、嵌入式設備、我的電腦。。。)的應用層編程語言有關。算法
Java源代碼的默認編譯結果並非可執行代碼(本地機器指令),而是具備平臺通用性的字節碼;實現了「一次編譯,到處運行」,而且只能在java虛擬機中運行,與物理宿主環境隔離。編程
由於java字節碼只能在java虛擬機中運行,與物理宿主環境隔離,實現了安全模型,有助於防止錯誤發生,加強程序的可靠性。同時,Java的廢棄指針操做,自動內存管理,數組邊界檢查,類型轉換檢查,線程安全機制和物理環境訪問限制等語法限制也保證了程序的安全。數組
Java使用多線程的併發機制將任務進行分散,而不是所有集中在主線程內,採用異步的方式併發執行多項任務,具備極高的執行效率。瀏覽器
Java與生俱來對分佈式技術的支持比較完善,充分利用分佈式環境中的每個節點去協同處理任務,具備高效的執行效率,還能有效下降單機負載以及提高穩定性和可用性。(如:RMI--Java遠程方法調用,JMS--Java消息服務)豐富的第三方開源組件 :隨處可見成熟的第三方開源框架。安全
Java繼承了C語言的語法結構,並改編了C++的對象模型。 類是Java最基本的封裝單元,全部的操做都發生在類中; 屬性和方法構成了一個簡單的類,屬性用於定義對象的各類「器官」,而方法用於定義對象的一系列「行爲」。 在類內部,咱們能夠定義不少元素特徵,統稱爲類成員,Java的一些基本類元素信息以下: 關鍵字; 標識符 操做符(空白分隔符、普通分隔符); 註解(@Annotation類型、描述類型); 數據類型(原始數據類型、引用類型); 屬性(常量、變量); 運算符和表達式; 控制語句(流程控制語句、循環控制語句); 異常處理; 方法體; 在語法層面上,開發人員能夠在程序中直接使用 new關鍵字建立對象,並返回當前對象的一個引用(reference)。要注意,Java中的引用毫不等價於C++中的指針,由於引用類型的變量持有的僅僅只是一個引用而已非實際值,也就是說不能直接與對象打交道,而必須經過引用進行「牽引」,在程序中,即使不存在對象實例,引用也容許獨立存在,也就是說能夠聲明一個引用,不必定要與對象關聯,但務必確保在真正使用一個對象時,它已經完成了初始化操做。(以下圖) 多線程
1991年: Sun公司的James Gosling(Java語言主要創始人,Java之父)等人爲嵌入式設備開發了一種叫Oak的語言,沒有引發大多數人注意;
1994年:隨着互聯網和3W的發展,他們使用Oak編寫了一個叫作HotJava的瀏覽器,獲得Sun公司首席執行官的支持;
1995年:爲了促銷和法律的緣由,Oak正式改名爲Java,同年Sun發佈了Java1.0版本,並提出了「Write Once,Run Anywhere」(一次編譯,出處運行)的口號。Java1.0 功能並很少,只有JDK配套的純解釋器實現Java虛擬機(Sun Classic VM),Applet,AWT等技術。
1997年:Java1.1發佈,在Java1.0的基礎上,添加了JDBC、JAR格式支持、JavaBeans、RMI等技術,並在語法上開始支持反射和內部類等操做。
1998年:Java1.2發佈,將Java劃分爲3種結構獨立卻彼此依賴的技術體系分支,分別是J2SE(標準版)、J2EE(企業版)、J2ME(精簡版),在這個版本中添加了EJB、Java Plug-in、Java IDL、Swing等技術,而且Sun公司首次在JDK中內置了JIT編譯器。
2000年:Java1.3發佈,沒有引進太多的技術和改變,只是在基礎類庫上作了改進。
2002年:Java1.4發佈,引進了至關多的特性,如正則表達式、異常鏈、NIO、日誌類、XML解析器和XSLT轉換器等,意味着Java開始走向成熟。
2005年:Java1.5發佈,同時也是在1.5版本發佈後,後續的Java版本都改成以Java五、Java六、Java7等規則進行命名。在早期中Sun公司對Java各版本的語法改變並不大,但1.5版本針對語法層面的改進至關多,幾乎致使整個API都發生了變化。好比自動裝箱/拆箱、泛型、枚舉、@Annotation、可變長參數、foreach、粗粒度的並行模型等。
2006年:Java6發佈,改變動可能是體如今虛擬機內部,主要以同步對象鎖、垃圾回收、類型裝載等方面的算法更新爲主。同年Sun公司正式宣佈Java以GPL(General Public License)v2的開源協議進行源代碼公開,並創建了OpenJDK對Java的源代碼庫進行獨立管理。
2010年:因爲Sun公司無力推進Java7的研發工做,正式被Oracle公司收購,並接替Java7的後續研發。因爲Java7預期的功能很是多,不得不致使Oracle將部分功能進行裁剪,延遲到Java8的版本中再進行發佈。Java7在語法層面上作了較大的改變,還引入許多新技術,好比更新了Java的文件系統、細粒度的Fork/Join並行編程、混合語言等;同時Java虛擬機內部也作了許多改進和調整,好比Java7提供了G1垃圾收集器、類裝載器的並行裝載加強實現等。複製代碼