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