1. 程式人生 > >第一節 Java語言發展史

第一節 Java語言發展史

Sun公司簡介

         Sun公司的全稱 Stanford University Network ,是斯坦福大學孵化出來的後來成為高科技公司。創立後,曾經市值名列IT公司第一位。在2001年時,市值2100億美元,遠超過google公司、IBM公司。SUN公司不僅打敗了包括 IBM 在內的全部工作站(Work Station)和小型機(Mini Computer)公司,而且依靠它的 Solaris(一種Unix)和風靡世界的 Java 程式語言,成為在

作業系統上最有可能挑戰微軟的公司。太陽公司不乏能人,它不僅為 Google 培養了 CEO埃裡克.施密特和首任工程部副總裁韋恩.羅森(Wayne Rosen),並且在一定程度上奠定了今天 Google 工程部門的基礎。當然了現在的Sun公司已經被Oracle公司收購。

Java的誕生和核心特點

           上世紀90年代初,SUN公司的James Gosling(高司令)領導的Green專案,著力打造一個分散式的、可以在消費類電子產品(如電視機頂盒)使用的系統架構。這個可以在以前的諾基亞手機上看到,玩過諾基亞手機遊戲的人都知道。在遊戲開始的時候會有Java的標識。

                                                                  

        這種架構中,要求寫的程式碼可以執行在各種消費類電子產品中,即要求程式碼的中立性、跨平臺性。

        最初,Green專案使用的C++,但是在研發過程中發現C++並不能很好的適應新的需求。於是,這些高人對C++編譯器做了改寫,仍然不太理想,不太符合跨平臺的特性。 牛人有牛人特有的牛脾氣,於是,大家決定重起爐灶,開始研發一種新的語言,即JAVA. 

       經過一年半的研發,整個產品研發完成。但是,很遺憾,消費類電子產品並沒有高速的發展起來,JAVA進入蟄伏期

注意這裡提出的跨平臺特性是Java語言中重要特性之一。

Java飛速發展

無心插柳柳成蔭!90年代中末期,有一個改變世界的大事出現了:網際網路的爆發式增長。在傳統產業,例如鋼鐵產業要想取得產量翻番,那需要很多年的時間。但是,在網際網路行業都是呈指數級增長,爆炸式的增長。google可以在短短几年就增長到上千億美元市值。

     網際網路將各種各樣的電腦連到了一起,這時,我們發現電 腦的作業系統各種不同。因此,急需一種跨平臺的語言,通過它編寫的程式可以在各種平臺上執行。JAVA正好符合這種需求。使用JAVA編寫的applet程式給了90年代的人們極大的震撼,於是JAVA迎來了他的黃金時代!

JAVA誕生後,經歷瞭如下版本的發展變化:

•    1991年,Sun公司的Green專案,Oak

•    1995年,推出Java測試版

•    1996年,JDK1.0

•    1997年,JDK1.1

•    1998年,JDK1.2,大大改進了早期版本的缺陷,是一個革命性的版本,更名為Java2

•    2004年,J2SE 5.0 (1.5.0)  Tiger老虎

•    2006年,J2SE 6.0 (1.6.0)  Mustang野馬

•    2011年,JAVASE7.0 

Java的特性和優勢

簡單實用性: 就是c++語法的純淨版。沒有標頭檔案,指標運算,結構,聯合,操作符過載,虛基類等等。由於語法基於c,因此學習起來完全不費力。

面向物件:在《Java程式設計思想》中對面向物件思維方式有著深刻的講解,面向物件是一種程式設計技術,他將重點放在資料(即物件)和物件之間的介面上。通過抽象的方式概括,通過具體的方式實現程式碼的編寫。這個是在面向過程程式設計思想上的一種創新。

可移植性(跨平臺性)

      我們都知道Java的跨平臺性很好,當然 這是JAVA的一個重要的優勢。JAVA程式碼或者說位元組碼、二進位制碼可以跨平臺的移植,而不用管具體的作業系統和硬體環境。JAVA本身就是面向網路的,只有在網路環境中才能顯示出他的優勢,比如:現在我有一個網路環境,要讓我的筆記本和手機互動,筆記本環境是windows發出一個讓手機定時錄音的JAVA程式碼,手機只有簡單Linux核心作業系統,照樣可以完美的執行這個程式碼。這個在《Java程式設計思想》一書中提出的觀點是有本地庫和網路庫的觀點

write once, run anywhere

       JAVA在設計時就很注重移植和跨平臺性。比如:JAVA的Int永遠都是32位。不像c++可能是16,32,可能是根據編譯器廠商規定的變化。這樣的話程式的移植就會非常麻煩。

高效能

       JIT(JUST IN TIME)即時編譯。將一些“熱點”位元組碼編譯成本地機器碼,並將結果快取起來,在需要的時候重新呼叫。這樣的話,使JAVA程式的執行效率大大提高,某些程式碼甚至接待c++的效率。隨著這種技術的一天天完善,也許有一天會超越編譯程式碼的效率。 

分散式

       JAVA是為internet的分散式環境設計的,因為他能夠處理tcp/ip協議。事實上,通過url訪問一個網路資源和訪問本地檔案是一樣簡單的。Java還支援遠端方法呼叫(RMI,remote method Invocation),使程式能夠通過網路呼叫方法。

動態性

       就是在需要時將某些程式碼新增到正在執行的程式中。反射機制。當需要把某些程式碼新增到正在執行的程式中時,動態性是一個非常重要的特性。Java的動態特性是其面向物件設計方法的擴充套件。它允許程式動態地裝入執行過程中所需要的類,這是C++語言進行面向物件程式設計所無法實現的

多執行緒

       多執行緒的使用可以帶來更好的互動響應和實時行為。多執行緒的簡單性是Java成為主流伺服器端開發語言的主要原因之一。

安全性

       Java適合於網路/分散式環境,為了達到這個目標,在安全性方面投入了很大的精力,使Java可以構建防病毒,防篡改的系統。

健壯性

       Java是一種健壯的語言,吸收了C/C++ 語言的優點,但去掉了其影響程式健壯性的部分(如:指標、記憶體的申請與釋放等)。Java程式不可能造成計算機崩潰。Java系統仔細檢測對記憶體的每次訪問,確認它是合法的,而且不致引起任何問題。不過,即使Java程式也可能有錯誤。如果出現某種出乎意料之事,程式也不會崩潰,而是把該例外拋棄。再通過異常處理機制,程式就會發現這類例外,並加以處理。

Java 三大版本的區別

JAVAEE、JAVASE、JAVAME

                                      

 

   J2EE (JAVAEE)

–    Java 2 Enterprise Edition:

–    定位在伺服器端的應用

•    J2SE  (JAVASE)

–    Java 2  Standard  Edition

–    定位在個人計算機上的應用

•    J2ME  (JAVAME)

–    Java  2  Micro  Edition

–    定位在消費性電子產品的應用上