|名詞定義|
Java是一種廣泛使用的計算機程式設計語言,擁有跨平台、面向對象、泛型程式設計的特性,廣泛應用于企業級Web應用開發和移動應用開發。
Sun公司對Java語言的解釋是:“Java程式設計語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動态的語言。”
|發展曆程|
任職于Sun(Stanford University NetWork)公司的James Gosling等人與1990年代初開發Java語言的雛形,最初被命名為Oak,目标設定在家用電器等小型系統的程式設計語言,應用在電視機、電話、鬧鐘、烤面包機等家用電器的控制和通信。由于這些智能化家電的市場需求沒有預期的高,Sun公司放棄了該項計劃。随着1990年代網際網路的發展,Sun公司看見Oak在網際網路上應用的前景,于是改造了Oak,于1995年5月以Java的名稱正式釋出。Java伴随着網際網路的迅猛發展而發展,逐漸成為重要的網絡程式設計語言。
• 1995年5月23日,Java語言誕生
• 1996年1月,第一個JDK-JDK1.0誕生
• 1996年4月,10個最主要的作業系統供應商申明将在其産品中嵌入JAVA技術
• 1996年9月,約8.3萬個網頁應用了JAVA技術來制作
• 1997年2月18日,JDK1.1釋出
• 1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
• 1997年9月,JavaDeveloperConnection社群成員超過十萬
• 1998年2月,JDK1.1被下載下傳超過2,000,000次
• 1998年12月8日,JAVA2企業平台J2EE釋出
• 1999年6月,SUN公司釋出Java的三個版本:标準版(J2SE)、企業版(J2EE)和微型版(J2ME)
• 2000年5月8日,JDK1.3釋出
• 2000年5月29日,JDK1.4釋出
• 2001年6月5日,NOKIA宣布,到2003年将出售1億部支援Java的手機
• 2001年9月24日,J2EE1.3釋出
• 2002年2月26日,J2SE1.4釋出,自此Java的計算能力有了大幅提升
• 2004年9月30日18:00PM,J2SE1.5釋出,成為Java語言發展史上的又一裡程碑。為了表示該版本的重要性,J2SE1.5更名為Java SE 5.0
• 2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名,以取消其中的數字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME
• 2006年12月,SUN公司釋出JRE6.0
• 2009年12月,SUN公司釋出Java EE 6
• 2010年11月,由于Oracle公司對于Java社群的不友善,是以Apache揚言将退出JCP
• 2011年7月28日,Oracle公司釋出Java SE 7
• 2014年3月18日,Oracle公司發表Java SE 8
• 2017年9月21日,Oracle公司發表Java SE 9
• 2018年3月21日,Oracle公司發表Java SE 10
• 2018年9月25日,Java SE 11釋出
目前Java提供以下三個版本:
Java标準開發(J2SE、Java SE):提供底層支援,實作桌面程式開發,包括Word、Excle等;
Java嵌入式開發(J2ME、Java ME):智能家居就是SUN公司最初就是想做的嵌入式開發,但是這個嵌入式的發展因為當年的 Nokia 的阻攔,後來基本上被 Android 所替代了;
Java企業開發(J2EE、Java EE):主要進行企業平台的搭建,現在主要開發的是網際網路平台。
現時,移動作業系統Android大部分的代碼采用Java程式設計語言程式設計。
|語言特點|
Java程式設計語言的風格十分接近C++語言。繼承了C++語言面向對象技術的核心,舍棄了容易引起錯誤的指針,以引用取代;移除了C++中的運算符重載和多重繼承特性,用接口取代;增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型程式設計、類型安全的枚舉、不定長參數和自動裝/拆箱特性。
Java語言屬于編譯型與解釋型的開發語言,但不同于一般的編譯語言或解釋型語言。它首先将源代碼編譯成位元組碼,再依賴各種不同平台上的虛拟機來解釋執行位元組碼,進而具有“一次編寫,到處運作”的跨平台特性。在早期JVM中,這在一定程度上降低了Java程式的運作效率。但在J2SE1.4.2釋出後,Java的運作速度有了大幅提升。
Java 之是以可以得到持續的發展力以及良好的生态系統,這完全取決于 Java 的自身的技術特征:
1、是一個行業内通用的技術實作标準: 是一種半開源産品,是以很多的廠商得以接觸到 Java 的底層,這樣使得 Java 開發的更加的透明;
2、是一門面向對象的程式設計語言:這樣就使得 Java 語言文法結構更加友善開發者接受,這些面向對象的設計思想還在不斷進行着擴充(不同的 JDK 版本);
3、提供有友善的記憶體回收處理機制:像一些程式設計語言裡面需要明确的手工進行對象的回收與釋放,否則你的程式将無法正常提供支援,但是 Java 可以提供有自動的記憶體回收操作,這樣處理會更加友善一些(這裡面就牽扯到了一些優化方面的問題了);
4、避免了複雜的指針問題,而使用更加簡單的引用來代替指針:指針雖然是一種高效的記憶體處理模式,但是其需要較強的分析,而我們的Java在設計的時候就充分的考慮到了這一點,是以開發者直接利用引用就可以簡化指針的處理,而引用也是在初學者過程之中最為麻煩最為難以了解的部分;
5、Java是為數不多支援多線程程式設計的開發語言:這樣就可以使得機關時間内,處理的性能得到提升(性能的提升并不是絕對的);多線程也是Java 開發之中最難以了解的部分,而正确的多線程處理才是提升處理性能的核心所在;
6、Java提供有高效的網絡處理能力:可以基于NIO實作更加高效的資料的傳輸處理;
7、Java具有良好的可移植性:這樣就可以提升一個程式的适用範圍。Java的可移植性實作,依靠JVM(Java虛拟機),JVM是一個由軟體和硬體模拟出來的計算機,所有的程式隻要有JVM的支援,就可以實作程式的執行,不同的作業系統上會有不同版本的JVM,這樣就可以實作移植性。
編寫Java程式前應注意以下幾點:
大小寫敏感:Java是大小寫敏感的,這就意味着辨別符Hello與hello是不同的。
類名:對于所有的類來說,類名的首字母應該大寫。如果類名由若幹單詞組成,那麼每個單詞的首字母應該大寫,例如MyFirstJavaClass。
方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若幹單詞,則後面的每個單詞首字母大寫,例如myFirstJavaMethod。
源檔案名:源檔案名必須和類名相同。當儲存檔案的時候,你應該使用類名作為檔案名儲存(切記Java是大小寫敏感的),檔案名的字尾為.java。(如果檔案名和類名不相同則會導緻編譯錯誤)。
主方法入口:所有的Java程式由public static void main(String[] args)方法開始執行。
|适用場景|
1.桌面GUI應用程式: Java通過抽象視窗工具包(AWT),Swing和JavaFX等多種方式提供GUI開發。雖然AWT包含許多預先建構的元件,如菜單,按鈕,清單以及衆多第三方元件,但Swing(一個GUI小部件工具包)還提供某些進階元件,如樹,表格,滾動窗格,頁籤式面闆和清單。JavaFX是一組圖形和媒體包,提供了Swing互操作性,3D圖形功能和自包含的部署模型,可以快速編寫Java小應用程式和應用程式的腳本。
2.移動應用程式: Java Platform,Micro Edition(Java ME或J2ME)是一個跨平台架構,用于建構可在所有Java支援的裝置(包括功能手機和智能手機)上運作的應用程式。此外,最受歡迎的移動作業系統之一的Android應用程式通常使用Android軟體開發工具包(SDK)或其他環境在Java中編寫腳本。
3.嵌入式系統: 從微型晶片到專用計算機的嵌入式系統是執行專門任務的大型機電系統的元件。諸如SIM卡,藍光CD光牒播放器,公用事業儀表和電視機等多種裝置都使用嵌入式Java技術。據甲骨文公司稱,100%的藍光CD光牒播放器和1.25億台電視裝置都采用Java技術。
4.Web應用程式: Java通過Servlets,Struts或JSP提供對Web應用程式的支援。程式設計語言提供的簡單程式設計和更高的安全性使得大量政府應用程式可用于基于Java的健康,社會安全,教育和保險。Java也可以使用Broadleaf等開源電子商務平台開發電子商務Web應用程式。
5.Web伺服器和應用程式伺服器: 今天的Java生态系統包含多個Java Web伺服器和應用程式伺服器。雖然Apache Tomcat,Simple,Jo !, Rimfaxe Web伺服器(RWS)和Project Jigsaw占據了Web伺服器空間,但WebLogic,WebSphere和Jboss EAP在商業應用伺服器領域占據重要地位。
6.企業應用程式: Java企業版(Java EE)是一種流行的平台,為腳本和運作企業軟體(包括網絡應用程式和Web服務)提供API和運作時環境。甲骨文宣稱Java在97%的企業計算機上運作。Java中更高的性能保證和更快的計算能力導緻像Murex這樣的高頻交易系統被編入腳本中。它也是各種銀行應用程式的中樞,它們将Java從前端使用者端運作到後端伺服器端。
7.科學應用: Java是許多軟體開發人員用于編寫涉及科學計算和數學運算的應用程式的選擇。這些程式通常被認為是快速和安全的,具有更高的便攜性和低維護性。像MATLAB這樣的應用程式使用Java來互動使用者界面和作為核心系統的一部分。
|參考資料|
[1] 阿裡雲大學
[2] Java開發者
[3] The History of Java Technology. [2012-10-06].
[4] Applications of Java Programming Language
[5] 什麼是 Java?為何需要 Java?. www.java.com. [2018-04-11] (中文(中國大陸)).