概述
Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計語言和Java平臺的總稱。由James Gosling和同事們共同研發(fā)共耍,并在1995年正式推出。
Java分為三個體系:
- JavaSE(J2SE)(Java2 Platform Standard Edition绩社,java平臺標(biāo)準(zhǔn)版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition者春,java平臺企業(yè)版)
- JavaME(J2ME)(Java 2 Platform Micro Edition膘侮,java平臺微型版)。
2005年6月玩徊,JavaOne大會召開租悄,SUN公司公開Java SE 6。此時恩袱,Java的各種版本已經(jīng)更名以取消其中的數(shù)字"2":J2EE更名為Java EE, J2SE更名為Java SE泣棋,J2ME更名為Java ME。
主要特性
-
Java語言是簡單的
Java語言的語法與C語言和C++語言很接近畔塔,使得大多數(shù)程序員很容易學(xué)習(xí)和使用潭辈。另一方面,Java丟棄了C++中很少使用的俩檬、很難理解的萎胰、令人迷惑的那些特性,如操作符重載棚辽、多繼承技竟、自動的強(qiáng)制類型轉(zhuǎn)換。特別地屈藐,Java語言不使用指針榔组,而是引用。并提供了自動的廢料收集联逻,使得程序員不必為內(nèi)存管理而擔(dān)憂搓扯。 -
Java語言是面向?qū)ο蟮?/strong>
Java語言提供類、接口和繼承等面向?qū)ο蟮奶匦园椋瑸榱撕唵纹鹨娤峭疲恢С诸愔g的單繼承,但支持接口之間的多繼承公壤,并支持類與接口之間的實現(xiàn)機(jī)制(關(guān)鍵字為implements)换可。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定厦幅≌傣總之,Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言确憨。 -
Java語言是分布式的
Java語言支持Internet應(yīng)用的開發(fā)译荞,在基本的Java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(java net)瓤的,它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL吞歼、URLConnection圈膏、Socket、ServerSocket等篙骡。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段本辐。 -
Java語言是健壯的
Java的強(qiáng)類型機(jī)制、異常處理医增、垃圾的自動收集等是Java程序健壯性的重要保證慎皱。對指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性叶骨。 -
Java語言是安全的
Java通常被用在網(wǎng)絡(luò)環(huán)境中茫多,為此,Java提供了一個安全機(jī)制以防惡意代碼的攻擊忽刽。除了Java語言具有的許多安全特性以外天揖,Java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類跪帝、字節(jié)代碼檢查今膊,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。 -
Java語言是體系結(jié)構(gòu)中立的
Java程序(后綴為java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件)伞剑,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行斑唬。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 -
Java語言是可移植的
這種可移植性來源于體系結(jié)構(gòu)中立性黎泣,另外恕刘,Java還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性抒倚,Java編譯器是用Java實現(xiàn)的褐着,Java的運行環(huán)境是用ANSI C實現(xiàn)的。 -
Java語言是解釋型的
如前所述托呕,Java程序在Java平臺上被編譯為字節(jié)碼格式含蓉,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時项郊,Java平臺中的Java解釋器對這些字節(jié)碼進(jìn)行解釋執(zhí)行馅扣,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。 -
Java是高性能的
與那些解釋型的高級腳本語言相比呆抑,Java的確是高性能的岂嗓。事實上汁展,Java的運行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++鹊碍。 -
Java語言是多線程的
在Java語言中厌殉,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建侈咕。通常有兩種方法來創(chuàng)建線程:其一公罕,使用型構(gòu)為Thread(Runnable)的構(gòu)造子類將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二耀销,從Thread類派生出子類并重寫run方法楼眷,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口熊尉,因此罐柳,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼狰住。線程的活動由一組方法來控制张吉。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)催植。 -
Java語言是動態(tài)的
Java語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境肮蛹。Java程序需要的類能夠動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類创南。這也有利于軟件的升級伦忠。另外,Java中的類有一個運行時刻的表示稿辙,能進(jìn)行運行時刻的類型檢查昆码。
發(fā)展史
- 1995年5月23日,Java語言誕生
- 1996年1月邻储,第一個JDK-JDK1.0誕生
- 1996年4月未桥,10個最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入JAVA技術(shù)
- 1996年9月,約8.3萬個網(wǎng)頁應(yīng)用了JAVA技術(shù)來制作
- 1997年2月18日芥备,JDK1.1發(fā)布
- 1997年4月2日冬耿,JavaOne會議召開,參與者逾一萬人萌壳,創(chuàng)當(dāng)時全球同類會議規(guī)模之紀(jì)錄
- 1997年9月亦镶,JavaDeveloperConnection社區(qū)成員超過十萬
- 1998年2月,JDK1.1被下載超過2,000,000次
- 1998年12月8日袱瓮,JAVA2企業(yè)平臺J2EE發(fā)布
- 1999年6月缤骨,SUN公司發(fā)布Java的三個版本:標(biāo)準(zhǔn)版(JavaSE,以前是J2SE)、企業(yè)版(JavaEE以前是J2EE)和微型版(JavaME尺借,以前是J2ME)
- 2000年5月8日绊起,JDK1.3發(fā)布
- 2000年5月29日,JDK1.4發(fā)布
- 2001年6月5日燎斩,NOKIA宣布虱歪,到2003年將出售1億部支持Java的手機(jī)
- 2001年9月24日蜂绎,J2EE1.3發(fā)布
- 2002年2月26日,J2SE1.4發(fā)布笋鄙,自此Java的計算能力有了大幅提升
- 2004年9月30日18:00PM师枣,J2SE1.5發(fā)布,成為Java語言發(fā)展史上的又一里程碑萧落。為了表示該版本的重要性践美,J2SE1.5更名為Java SE 5.0
- 2005年6月,JavaOne大會召開找岖,SUN公司公開Java SE 6陨倡。此時,Java的各種版本已經(jīng)更名许布,以取消其中的數(shù)字"2":J2EE更名為Java EE玫膀,J2SE更名為Java SE,J2ME更名為Java ME
- 2006年12月爹脾,SUN公司發(fā)布JRE6.0
- 2009年04月20日帖旨,甲骨文74億美元收購Sun。取得java的版權(quán)灵妨。
- 2010年11月解阅,由于甲骨文對于Java社區(qū)的不友善,因此Apache揚言將退出JCP[4]泌霍。
- 2011年7月28日货抄,甲骨文發(fā)布 Java7.0 的正式版。
- 2014年3月18日朱转,Oracle公司發(fā)表 Java SE 8蟹地。
- 2017年9月21日,Oracle公司發(fā)表 Java SE 9
- 2018年3月21日藤为,Oracle公司發(fā)表 Java SE 10
- 2018年9月25日怪与,Java SE 11 發(fā)布
- 2019年3月20日,Java SE 12 發(fā)布