20世紀90年代,單片式計算機系統誕生,單片式計算機系統不只廉價,並且功能強大,使用它能夠大幅度提高消費性電子產品的智能化程度。程序員
SUN公司爲了搶佔市場先機,在1991年成立了一個由詹姆斯·高斯林(James Gosling)領導,名爲「Green」項目小組,目的是開發一種可以在各類消費性電子產品上運行的程序架構。web
那麼使用何種編程語言來設計,是項目小組頭疼的事。當時C++較爲有優點的,項目小組首先考慮的是採用它來編寫程序,但C++過於複雜和龐大,再加上因爲消費電子產品所採用的嵌入式處理器芯片的種類繁雜,須要讓編寫的程序跨平臺運行,假如用C++編寫的話對程序的跨平臺運行不友好。正則表達式
最後項目小組決定:既不用C++編寫,也不開發全新的編程語言,而是對C++進行改造:去除了C++複雜的指針和內存管理,並結合嵌入式系統的實時性要求,最終在1992年,他們開發了一種名爲「Oak」的面嚮對象語言。科當他們在向硬件生產商進行演示的時候,硬件生產商對此並不感冒,OaK語言由於缺少硬件的支持而沒法進入市場,從而被擱置一旁。1994年,項目小組看到了瀏覽器在將來的發展前景,因而決定將OaK應用於萬維網。1995年,他們用OaK語言研發了一種能將小程序嵌入到網頁中執行的技術——Applet,因爲Applet不只能嵌入網頁,還可隨同網頁在網絡上進行傳輸,這讓無數的程序員看到了OaK這門語言,與此同時,OaK正式改名爲Java。今後,Java在互聯網的推進下火了。算法
1996年1月,SUN公司推出了JDK1.0。在JDK1.0發佈後,有不少程序員學習並運用Java來製做網頁,JDK包括兩大部分:開發工具和運行環境。數據庫
運行環境包括核心API、集成API、用戶界面API、發佈技術、Java虛擬機(JVM)。JDK1.0的發佈,標誌着Java成爲一種獨立的開發工具。在同年9月,約有8.3萬個網頁應用了Java技術來製做。編程
JDK1.0的表明性技術有:Java虛擬機、Applet、AWT等。小程序
1997年2月,SUN公司緊接着推出了JDK 1.1,在推出後3周時間裏,達到了近22萬次的下載量。4月2日,首屆Java One大會在美國舊金山召開,參加會議的人超過一萬人,創造了當時全球同類會議規模最高的紀錄。9月,Java Developer Connection社區成員超過10萬,同年還有10個最主要的操做系統供應商正式聲明將在他們的產品中使用Java。瀏覽器
JDK1.1的表明性技術有:JDBC、JavaBeans、RMI、JAR文件格式、Java語法中的內部類和反射。安全
1998年12月8日,JDK1.2——第二代Java平臺的企業版J2EE發佈。服務器
1999年6月,Sun公司把Java體系分爲三個方向:
J2ME(Java2 Micro Edition,Java2平臺的微型版),應用於移動、無線及有限資源的環境;
J2SE(Java 2 Standard Edition,Java 2平臺的標準版),應用於桌面環境;
J2EE(Java 2Enterprise Edition,Java 2平臺的企業版),應用於基於Java的應用服務器。
隨着供應商的不一樣,Java的API也分爲三大類:
Java Core API:Java核心類庫;
Java Optional API:對以前API的擴充;
特殊API:由特殊廠商或組織提供的API。
Java 2平臺的發佈,是Java發展過程當中最重要的一個里程碑,標誌着Java的應用開始普及。
JKD1.2的表明性技術有:Swing、Java IDL、EJB、Java Plug-in等,在API文檔中,添加了strictfp關鍵字和Collections集合類。
1999年4月27日,HotSpot虛擬機發布。HotSpot是由一家叫「Longview Technologies」的小公司開發的,後來被SUN公司收購。HotSpot虛擬機發布時是做爲JDK 1.2的附加程序提供的,後來它成爲了JDK 1.3及以後全部版本的Sun JDK的默認虛擬機 。
2000年5月,JDK1.三、JDK1.4和J2SE1.3相繼發佈,J2SE1.3是對J2SE1.2的補充和擴展,從應用領域的角度分析,JavaSE1.3已經涵蓋了數據庫、WEB、網絡、圖形、多媒體、電話、影像等大部分的信息技術領域。
2002年2月26日,J2SE1.4發佈。與J2SE1.3相比,多了近62%的類和接口。在這些新特性當中,還提供了普遍的XML支持、安全套接字(Socket)支持(經過SSL與TLS協議)、全新的I/OAPI、正則表達式、日誌與斷言。
2004年9月30日,J2SE1.5發佈,成爲Java語言發展史上的又一里程碑。爲了表示該版本的重要性,J2SE 1.5改名爲Java SE 5.0(內部版本號1.5.0)。Java SE 5.0包含了從1996年發佈1.0版本以來的最重大的更新,其中包括泛型支持、基本類型的自動裝箱、改進的循環、枚舉類型、格式化I/O及可變參數。
2005年6月,在Java One大會上,Sun公司發佈了Java SE 6。此時,Java的各類版本已經改名,已取消其中的數字2,如J2EE改名爲JavaEE,J2SE改名爲JavaSE,J2ME改名爲JavaME。
2011年7月28日,收購Sun公司的Oracle發佈了 Java SE 7,引入了二進制整數、支持字符串的switch語句、棱形語法、多異常捕抓、自動關閉資源的try語言等新特性。
2014年3月18日,Oracle公司發佈Java SE8,此次版本升級爲Java帶來了全新的Lambda表達式、流式編程等大量新特性,這些新特性使得Java變得更增強大。
2017年9月22日,Oracle公司發佈Java SE 9,此次版本升級強化了Java的模塊化系統,讓Java語言更輕量化,且採用了更高效、更智能的GI 垃圾回收器,並在核心類庫上進行大量更新,可進一步簡化編程。
2018 年 3 月 21 日,Java SE 10 發佈,Java 10 版本帶來了不少新特性,其中最備受廣大開發者關注的莫過於局部變量類型推斷。此外,還包垃圾收集器改善、GC 改進、性能提高、線程管控等新特性。
2018年9月26日,Java SE 11 發佈。這是 Java 大版本週期變化後的第一個長期支持版本(LTS版本持續支持到2026年9月)。Java11 帶來了 ZGC、Http Client 等重要特性,一共包含 17 個 JEP(JDK Enhancement Proposals,JDK 加強提案)。
2019年3月20日,Java SE 12 發佈。Java 12是短時間支持版本,可在下一個版本發佈以前得到Oracle的商業支持。
2019年9月23日,Java SE 13發佈,此版本中添加了「文本塊」,文本塊是一個多行字符串文字,避免對大多數轉義序列的須要,以可預測的方式自動格式化字符串,並在須要時讓開發人員控制格式。
通過二十多年的版本更新,一步步的積累,造就了現在的Java。一覽Java在更新曆程中所新增的特性:
字符串常量作內存映射
對打包的Java文件進行數字簽名
控制受權訪問系統資源的策略工具
JDBC中引入可滾動結果集,BLOB,CLOB,批量更新和用戶自定義類型
在Applet中添加聲音支持
即時編譯技術——JIT
運行插件——Java Plug-In
J2EE規範——EJB
平臺對象請求代理體系結構——Java IDL
集合——Collections
數學運算
CORBA IIOP實現RMI的通訊協議
Java 2D新特性
Jar文件索引
時間——Timer API
聲音——Java Sound API
Java SE 8在Java更新的歷史中是一個很是重要的版本,引入的函數式編程使得Java編程更爲強大,較典型的有:
看今朝,Java 位居世界編程語言榜首,風光無限好。憶往昔,初生之時便陷入低谷,後借互聯網之勢拔地而起,J2SE攻佔桌面、J2ME攻佔手機、J2EE攻佔服務器,Java三大強軍也曾飽受歲月蹉跎,後浴火重生,最終投入Oracle懷抱,換得春暖花開。此情此景,悲之、喜之、感之、嘆之,Java現在之風光,並不是一日之功,望天下衆程序員惜之、盼之。
Java的更新速度是很快的,每隔一段時間都會進行一次版本迭代,來適應新技術的發展趨勢,學Java的程序員遍及全世界,很慶幸我也是茫茫Java程序員中的一員,近些年來很火熱的大數據也是和Java息息相關。Java自己具備很大的開放性和可擴展性,再加上Java如此雄厚的歷史背景,我相信一個語言只要不斷髮展,就很難會被時代淘汰。
隨着網絡的發展,現在Java已普遍應用於數據中心、PC、遊戲、移動電話等行業,從近幾年的招聘量上來看,對Java開發人員的需求量依舊很大,Java的學習依舊是主流,發展前景一片光明。我國信息化人才培養還處於發展階段,致使社會實際需求人才基數遠遠大於信息化人才的培養基數,使得數以萬計的中小企業急需全面系統掌握Java軟件開發基礎技能與知識的軟件工程師。Java軟件工程師就業前景良好,再加上Java軟件工程師不只IT專業企業須要,廣大的非IT企業也須要,前景是較爲樂觀的。目前我所瞭解的有:一、Java企業級應用開發目前Java在許多行業的企業信息應用方面有不少,好比郵箱、物流、醫療、股票、OA、金融等信息系統。這些和目前的主流行業密切相關的,因此Java開發者的需求仍是較大,待遇也是至關不錯,工資水平與Java互聯網方向的差很少,很容易在一些大型企業就業,只要你有恆心有毅力地學習,我想至少面臨這麼多選擇時,你不會一無所用,機會老是會留給有準備的人。二、Java網站建設近些年來,網站建設業務一直呈現快速上升的勢頭,行業市場也是愈來愈大,不少新技術的應用使得企業網站建設更具魅力、更增強大。Java編程語言將使網站結構更緊密,訪問更流暢,更能適應新的要求。雖然以目前的市場分析Java作網站成本過高,並且對硬件要求也比較高,中小企業大多都會選擇使用PHP語言進行開發,可是在不少大型企業仍是用Java語言的比較多,因此你依舊有機會,向大廠衝鴨。三、 Android開發Android是全球最大的智能手機操做系統,前幾年Android發展快速,在國內的市場份額也是愈來愈高,但在快速興起的小程序和H5的衝擊下,致使Android原生開發門檻增高,公司對Android開發工程師的要求也提升了,這就要求學習Android的程序員們精於技術,優秀的Android開發工程師仍然存在不小的缺口,中、高級的Android工程師仍是很受歡迎的。Android應用的主要開發語言就是Java,因此若是你技術很精,選擇Android這個方向仍是很不錯的。四、Java遊戲開發Java可用來編寫遊戲腳本,如Bean、Shell、Groovy等腳本語言能夠方便、無縫的和Java語言進行交互,這些極大地促進Java遊戲編程。當前國內遊戲較爲火熱,不少熱門電競,因此國內遊戲專業人才的需求一直都存在缺口。因此,好好努力去填補這些缺口吧,只要你有過人的技術,不愁沒飯吃。
我是一名學Java的程序員,經過整理撰寫本文,我又從新認識了Java。在我看來,Java的」火「並非偶然的,有不少因素的積累而成。Java的發展進程值得考究,做爲一名Java的忠實粉絲,Java的重要性不言而喻,相信不論是計算機專業仍是非計算機專業的程序員也會感同身受。對我而言,其餘Java程序員也是同樣,由於對Java有着持久不衰的熱愛,因此願意不斷追求專業追求卓越,而帶着這份忠誠的熱愛,咱們不畏風雨,一路前行。不忘初心,方得始終,我願以Java爲馬,詩酒趁年華!
參考:Java百度百科