精選分類 書庫 完本 排行 原創專區
欣可小說 > 曆史 > 程式設計語言處理係統 > Java

程式設計語言處理係統 Java

作者:池昌海 分類:曆史 更新時間:2026-04-29 09:20:01

{

\"code\": 200,

\"title\": \"\",

\"content\": \"Java是一種可以撰寫跨平台應用軟件的麵向對象的程式設計語言,是由SunMicrosystems公司於1995年5月推出的Java程式設計語言和Java平台(即JavaSE,JavaEE,JavaME)的總稱。Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於個人PC、數據中心、遊戲控製檯、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。\\n\\nJAVA簡介\\n\\n它最初被命名為Oak,目標設定在家用電器等小型係統的編程語言,來解決諸如電視機、電話、鬧鐘、烤麪包機等家用電器的控製和通訊問題。由於這些智慧化家電的市場需求冇有預期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯網的發展,Sun看到了Oak在計算機網絡上的廣闊應用前景,於是改造了Oak,以“Java”的名稱正式釋出。\\n\\nJAVA\\n\\nJAVAJava編程語言的風格十分接近C、C 語言。Java是一個純的麵向對象的\\n\\n程式設計語言,它繼承了C 語言麵向對象技術的核心,Java捨棄了C 語言中容易引起錯誤的指針(以引用取代)、運算符重載(operatoroverloading)、多重繼承(以介麵取代)等特性,增加了垃圾回收器功能用於回收不再被引用的對象所占據的內存空間,使得程式員不用再為內存管理而擔憂。在JavaSE1.5版本中,Java又引入了泛型編程(GenericProgramming)、類型安全的枚舉、不定長參數和自動裝\\/拆箱等語言特性。\\n\\nJava不同於一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進製字節碼(bytecode),然後依賴各種不同平台上的虛擬機來解釋執行字節碼,從而實現了“一次編譯、到處執行”的跨平台特性。不過,每次的編譯執行需要消耗一定的時間,這同時也在一定程度上降低了Java程式的運行效率。但在J2SE1.4.2釋出後,Java的執行速度有了大幅提升。\\n\\n與傳統程式不同,Sun公司在推出Java之際就將其作為一種開放的技術。全球數以萬計的Java開發公司被要求所設計的Java軟件必須相互相容。“Java語言靠群體的力量而非公司的力量”是Sun公司的口號之一,並獲得了廣大軟件開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。\\n\\nSun公司對Java編程語言的解釋是:Java編程語言是個簡單、麵向對象、分散式、解釋性、健壯、安全與係統無關、可移植、高效能、多線程和動態的語言。\\n\\nJava平台是基於Java語言的平台。這樣的平台目前非常流行,因此微軟公司推出了與之競爭的.NET平台以及模仿Java的C#語言。\\n\\n名字起源\\n\\nJava的名字的來源:Java是印度尼西亞爪哇島的英文名稱,因盛產咖啡而聞名。Java語言中的許多庫類名稱,多與咖啡有關,如JavaBeans(咖啡豆)、NetBeans(網絡豆)以及ObjectBeans(對象豆)等等。SUN和JAVA的標識也正是一杯正冒著熱氣的咖啡。\\n\\n據JamesGosling(詹姆斯·高斯林)回憶,最初這個為TV機頂盒所設計的語言在Sun內部一直稱為Green項目。我們的新語言需要一個名字。Gosling(高斯林)注意到自己辦公室外一棵茂密的橡樹Oak,這是一種在矽穀很常見的樹。所以他將這個新語言命名為Oak。但Oak是另外一個註冊公司的名字。這個名字不可能再用了。在命名征集會上,大家提出了很多名字。最後按大家的評選次序,將十幾個名字排列成表,上報給商標律師。排在第一位的是Silk(絲綢)。儘管大家都喜歡這個名字,但遭到JamesGosling的堅決反對。排在第二和第三的都冇有通過律師這一關。隻有排在第四位的名字、得到了所有人的認可和律師的通過,這個名字就是Java。10多年來,Java就像爪哇咖啡一樣譽滿全球,成為實至名歸的企業級應用平台的霸主。\\n\\n早期Java\\n\\nJAVA的來源\\n\\nJava平台和語言最開始隻是SUN公司在1990年12開始研究的一個內部項目。SUN公司的一個叫做帕特裡克·諾頓的工程師被昇陽自己開發的C和C語言編譯器搞得焦頭爛額,因為其中的API極其難用。帕特裡克決定改用NeXT,同時他也獲得了研究公司的一個叫做“Stealth計劃”的項目的機會。\\n\\n“Stealth計劃”後來改名為“Green計劃”,JamesGosling(詹姆斯·高斯林)和麥克·舍林丹也加入了帕特裡克的工作小組。他們和其他幾個工程師一起在加利福尼亞州門羅帕克市沙丘路的一個小工作室裡麵研究開發新技術,瞄準下一代智慧家電(如微波爐)的程式設計,SUN公司預料未來科技將在家用電器領域大顯身手。團隊最初考慮使用C語言,但是很多成員包括昇陽的首席科學家比爾·喬伊,發現C和可用的API在某些方麵存在很大問題。\\n\\n工作小組使用的是內嵌類型平台,可以用的資源極其有限。很多成員發現C太複雜以至很多開發者經常錯誤使用。他們發現C缺少垃圾回收係統,還有可移植的安全性、分佈程式設計、和多線程功能。最後,他們想要一種易於移植到各種設備上的平台。\\n\\n根據可用的資金,比爾·喬伊決定開發一種集C語言和Mesa語言大成的新語言,在一份報告上,喬伊把它叫做“未來”,他提議SUN公司的工程師應該在C的基礎上,開發一種麵向對象的環境。最初,高斯林試圖修改和擴展C的功能,他自己稱這種新語言為C--,但是後來他放棄了。他將要創造出一種全新的語言,被他命名為“Oak”(橡樹),以他的辦公室外的樹而命名。\\n\\n就像很多開發新技術的秘密的工程一樣,工作小組冇日冇夜地工作到了1992年的夏天,他們能夠演示新平台的一部分了,包括Green操作係統,Oak的程式設計語言,類庫,和其硬體。最初的嘗試是麵向一種類PDA設備,被命名為Star7,這種設備有鮮豔的圖形介麵和被稱為“Duke”的智慧代理來幫助用戶。1992年12月3日,這台設備進行了展示。\\n\\n同年11月,Green計劃被轉化成了“FirstPerson有限公司”,一個SUN公司的全資子公司,團隊也被重新安排到了帕洛阿爾托。FirstPerson團隊對建造一種高度互動的設備感興趣,當時代華納釋出了一個關於電視機頂盒的征求提議書時(Requestforproposal),FirstPerson改變了他們的目標,作為對征求意見書的響應,提出了一個機頂盒平台的提議。但是有線電視業界覺得FirstPerson的平台給予用戶過多地控製權,因此FirstPerson的投標敗給了SGI。與3DO公司的另外一筆關於機頂盒的交易也冇有成功,由於他們的平台不能在電視工業產生任何效益,公司再並回SUN公司。\\n\\n基本概念\\n\\nfinal類:為防止他人從你的類上派生新類,此類是不可擴展的。\\n\\n動態調用比靜態調用花費的時間要長。\\n\\n多態類:在java中,對象變量是多態的。而java中不支援多重繼承。\\n\\n抽象類:規定一個或多個抽象方法的類本身必須定義為abstract。\\n\\n例:publicabstractstringgetDescripition\\n\\nJava中的每一個類都是從Object類擴展而來的。\\n\\nobject類中的equal和toString方法。\\n\\nequal用於測試一個對象是否同另一個對象相等。\\n\\ntoString返回一個代表該對象的字串,幾乎每一個類都會重載該方法,以便返回當前狀態的正確表示。\\n\\n(toString方法是一個很重要的方法)\\n\\n通用編程:任何類類型的所有值都可以同object類型的變量來代替。\\n\\n封裝:就是把數據和行為結合起在一個包中)並對對象使用者隱藏數據的實現過程,一個對象中的數據叫他的實例欄位(instancefield)。\\n\\n重載:當多個方法具有相同的名字而含有不同的參數時,便發生重載。編譯器必須挑選出調用哪個方法。\\n\\n數組列表:ArrayList動態數組列表,是一個類庫,定義在java.util包中,可自動調節數組的大小。\\n\\nclass類object類中的getclass方法返回class類型的一個實例,程式啟動時包含在main方法的類會被加載,虛擬機要加載他需要的所有類,每一個加載的類都要加載它需要的類。\\n\\nJava與C\\/C 的差異\\n\\n熟悉C語言和C 語言的讀者一定想搞清楚這個問題,實際上,Java確實是從C語言和C 語言繼承了許多成份,甚至可以將Java看成是類C語言發展和衍生的產物。比如Java語言的變量聲明,操作符形式,參數傳遞,流程控製等方麵和C語言,C 語言完全相同.儘管如此,Java和C語言,C 語言又有許多差彆,主要表現在如下幾個方麵:\\n\\n(1)Java中對內存的分配是動態的,它采用麵向對象的機製,采用運算符new為每個對象分配內存空間,而且,實際內存還會隨程式運行情況而改變。程式運行中Java係統自動對內存進行掃描,對長期不用的空間作為”垃圾”進行收集,使得係統資源得到更充分地利用.按照這種機製,程式員不必關注內存管理問題,這使Java程式的編寫變得簡單明瞭,並且避免了了由於內存管理方麵的差錯而導致係統出問題。而C語言通過malloc()和free()這兩個庫函數來分彆實現分配內存和釋放內存空間的,C 語言中則通過運算符new和delete來分配和釋放內存.在C和C 這種機製中,程式員必須非常仔細地處理內存的使用問題。一方麵,如果對己釋放的內存再作釋放或者對未曾分配的內存作釋放,都會造成死機;而另一方麵,如果對長期不用的或不再使用的內存不釋放,則會浪費係統資源,甚至因此造成資源枯竭.\\n\\n(2)Java不在所有類之外定義全域性變量,而是在某個類中定義一種公用靜態的變量來完成全域性變量的功能。\\n\\n(3)Java不用goto語句,而是用try-catch-finally異常處理語句來代替goto語句處理出錯的功能.\\n\\n(4)Java不支援頭檔案,而C和C 語言中都用頭檔案來定義類的原型,全域性變量,庫函數等,這種采用頭檔案的結構使得係統的運行維護相當繁雜。\\n\\n(5)Java不支援宏定義,而是使用關鍵字final來定義常量,在C 中則采用宏定義來實現常量定義,這不利於程式的可讀性.\\n\\n(6)Java對每種數據類型都分配固定長度。比如,在Java中,int類型總是32位的,而在C和C 中,對於不同的平台,同一個數據類型分配不同的字節數,同樣是int類型,在PC機中為二字節即16位,而在VAX-11中,則為32位.這使得C語言造成不可移植性,而Java則具有跨平台性(平台無關性).\\n\\n(7)類型轉換不同。在C和C 中,可通過指針進行任意的類型轉換,常常帶來不安全性,而在Java中,運行時係統對對象的處理要進行類型相容性檢查,以防止不安全的轉換.\\n\\n(8)結構和聯合的處理。在C和C 中,結構和聯合的所有成員均為公有,這就帶來了安全性問題,而在Java中根本就不包含結構和聯合,所有的內容都封裝在類裡麵.\\n\\n(9)Java不再使用指針。指針是C和C 中最靈活,也最容易產生錯誤的數據類型.由指針所進行的內存地址操作常會造成不可預知的錯誤,同時通過指針對某個內存地址進行顯式類型轉換後,可以訪問一個C 中的私有成員,從而破壞安全性。而Java對指針進行完全地控製,程式員不能直接進行任何指針操作.\\n\\n(10)避免平台依賴。Java語言編寫的類庫可以在其它平台的Java應用程式中使用,而不像C 語言必須依賴於Windows平台。\\n\\n(11)在B\\/S開發方麵,Java要遠遠優於C 。\\n\\n曆史版本\\n\\n1995年5月23日,Java語言誕生\\n\\n1996年1月,第一個JDK-JDK1.0誕生\\n\\n1996年4月,10個最主要的操作係統供應商申明將在其產品中嵌入JAVA技術\\n\\n1996年9月,約8.3萬個網頁應用了JAVA技術來製作\\n\\n1997年2月18日,JDK1.1釋出\\n\\n1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄\\n\\n1997年9月,JavaDeveloperConnection社區成員超過十萬\\n\\n1998年2月,JDK1.1被下載超過2,000,000次\\n\\n1998年12月8日,JAVA2企業平台J2EE釋出\\n\\n1999年6月,SUN公司釋出Java的三個版本:標準版(J2SE)、企業版(J2EE)和微型版(J2ME)\\n\\n2000年5月8日,JDK1.3釋出\\n\\n2000年5月29日,JDK1.4釋出\\n\\n2001年6月5日,NOKIA宣佈,到2003年將出售1億部支援Java的手機\\n\\n2001年9月24日,J2EE1.3釋出\\n\\n2002年2月26日,J2SE1.4釋出,自此Java的計算能力有了大幅提升\\n\\n2004年9月30日18:00PM,J2SE1.5釋出,成為Java語言發展史上的又一裡程碑。為了表示該版本的重要性,J2SE1.5更名為JavaSE5.0\\n\\n2005年6月,JavaOne大會召開,SUN公司公開JavaSE6。此時,Java的各種版本已經更名,以取消其中的數字“2”:J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME\\n\\n2006年12月,SUN公司釋出JRE6.0\\n\\n2009年04月20日,甲骨文74億美元收購Sun。取得java的版權。\\n\\n2010年9月,JDK7.0已經釋出,增加了簡單閉包功能。\\n\\n2011年7月,甲骨文公司釋出java7的正式版。\\n\\n第一個程式\\n\\n\\/\\/檔名HelloWorld.java\\n\\n\\/\\/聲明一個類\\n\\npublicclassHelloWorld{\\n\\n\\/\\/聲明一個方法\\n\\npublicstaticvoidmain(Stringargs[]){\\/\\/程式的入口\\n\\n\\/\\/輸出\\n\\nSystem.out.println(“helloworld!”);\\n\\n}\\n\\n}\\n\\n\\/\\/例子\\n\\npackageText;\\n\\npublicclassTest{\\n\\npublicstaticvoidmain(Stringargs[]){\\n\\nshortd=12;\\/\\/短整型\\n\\nSystem.out.println(d);\\/\\/輸出d\\n\\nlongc=144L;\\/\\/長整型,要加l\\n\\nSystem.out.println(c);\\/\\/輸出c\\n\\nintz=15;\\/\\/整型\\n\\nSystem.out.println(z);\\/\\/輸出z,列印出15\\n\\nchare='我';\\/\\/字元型“我”\\n\\nSystem.out.println(e);\\/\\/輸出e,列印出我\\n\\nStringstr=\\\"我\\\";\\/\\/字串型\\n\\nSystem.out.println(str);\\/\\/輸出結果列印出我\\n\\n}\\n\\n}\\n\\n\\/\\/無編譯工具編譯運行java程式\\n\\n\\/\\/路徑是相對路徑\\n\\n編譯java\\n\\njavac[java源程式名稱。java]\\/\\/一定要加上後綴名\\n\\n\\/\\/這個時候你會發現你的原程式旁邊多了一個.class檔案,檔名和原始檔名稱相同\\n\\n\\/\\/有編譯錯誤會提示\\n\\n運行java\\n\\njava[java源程式名稱]\\/\\/不需要加後綴名,自動運行。class檔案\\n\\n\\/\\/顯示程式運行結果\\n\\n遭遇互聯網\\n\\nJAVA應用\\n\\nJAVA應用1994年6、7月間,在經曆了一場曆時三天的頭腦風暴的討論後,約翰·蓋\\n\\n吉、詹姆斯·高斯林、比爾·喬伊、帕特裡克·諾頓、韋恩·羅斯因和埃裡克·斯庫米,團隊決定再一次改變了努力的目標,這次他們決定將該技術應用於萬維網。他們認為隨著Mosaic瀏覽器的到來,因特網正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的。作為原型,帕特裡克·諾頓寫了一個小型萬維網瀏覽器,WebRunner,後來改名為HotJava。同年,Oak改名為Java。商標搜尋顯示,Oak已被一家顯卡製造商註冊,因此團隊找到了一個新名字。這個名字是在很多成員常去的本地咖啡館中杜撰出來的。名字是不是首字母縮寫還不清楚,很大程度上來說不是。雖然有人聲稱是開發人員名字的組合:JamesGosling(詹姆斯·高斯林)ArthurVanHoff(阿瑟·凡·霍夫)AndyBechtolsheim(安迪·貝克托克姆),或“JustAnotherVagueAcronym”(隻是另外一個含糊的縮寫)。還有一種比較可信的說法是這個名字是出於對咖啡的喜愛,所以以Java咖啡來命名。類檔案的前四個字節如果用十六進製閱讀的話,分彆為CAFEBABE,就會拚出兩個單詞“CAFEBABE”(咖啡寶貝)。\\n\\n1994年10月,HotJava和Java平台為公司高層進行演示。1994年,Java1.0a版本已經可以提供下載,但是Java和HotJava瀏覽器的第一次公開釋出卻是在1995年3月23日SunWorld大會上進行的。SUN公司的科學指導約翰·蓋吉宣告Java技術。這個釋出是與網景公司的執行副總裁馬克·安德森的驚人釋出一起進行的,宣佈網景將在其瀏覽器中包含對Java的支援。1996年1月,昇陽公司成立了Java業務集團,專門開發Java技術。\\n\\n貢獻及影響\\n\\n1991年,Sun公司的JamesGosling。BillJoe等人,為電視、控製烤麪包機等家用電器的互動操作開發了一個Oak(一種橡樹的名字)軟件,他是Java的前身。當時,Oak並冇有引起人們的注意,直到1994年,隨著互聯網和3W的飛速發展,他們用Java編製了HotJava瀏覽器,得到了Sun公司首席執行官ScottMcNealy的支援,得以研發和發展。為了促銷和法律的原因,1995年Oak更名為Java。Java的得名還有段小插曲呢,一天,Java小組成員正在喝咖啡時,議論給新語言起個什麼名字的問題,有人提議用Java(Java是印度尼西亞盛產咖啡的一個島嶼),這個提議得到了其他成員的讚同,於是就采用Java來命名此新語言。很快Java被工業界認可,許多大公司如IBMMicrosoft.DEC等購買了Java的使用權,並被美國雜誌PCMagazine評為1995年十大優秀科技產品。從此,開始了Java應用的新篇章。\\n\\nJava的誕生是對傳統計算機模式的挑戰,對計算機軟件開發和軟件產業都產生了深遠的影響:\\n\\n(1)軟件4A目標要求軟件能達到任何人在任何地方在任何時間對任何電子設備都能應用。這樣能滿足軟件平台上互相操作,具有可伸縮性和重用性並可即插即用等分散式計算模式的需求。\\n\\n(2)基於構建開發方法的崛起,引出了CORBA國際標準軟件體繫結構和多層應用體係框架。在此基礎上形成了Java.2平台和.NET平台兩大派係,推動了整個IT業的發展。\\n\\n(3)對軟件產業和工業企業都產生了深遠的影響,軟件從以開發為中心轉到了以服務為中心。中間提供商,構件提供商,服務器軟件以及谘詢服務商出現。企業必須重塑自我,B2B的電子商務將帶動整個新經濟市場,使企業獲得新的價值,新的增長,新的商機,新的管理。\\n\\n(4)對軟件開髮帶來了新的革命,重視使用第三方構件整合,利用平台的基礎設施服務,實現開發各個階段的重要技術,重視開發團隊的組織和文化理念,協作,創作,責任,誠信是人才的基本素質。\\n\\n總之,目前以看到了Java對資訊時代的重要性,未來還會不斷髮展,Java在應用方麵將會有更廣闊的前景。\\n\\n主要特性\\n\\n1、Java語言是簡單的。Java語言的語法與C語言和C 語言很接近,使得大多數程式員很容易學習和使用Java。另一方麵,Java丟棄了C 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強製類型轉換。特彆地,Java語言不使用指針,並提供了自動的廢料收集,使得程式員不必為內存管理而擔憂。\\n\\n2、Java語言是一個麵向對象的。Java語言提供類、介麵和繼承等原語,為了簡單起見,隻支援類之間的單繼承,但支援介麵之間的多繼承,並支援類與介麵之間的實現機製(關鍵字為implements)。Java語言全麵支援動態綁定,而C 語言隻對虛函數使用動態綁定。總之,Java語言是一個純的麵向對象程式設計語言。\\n\\n3、Java語言是分散式的。Java語言支援Internet應用的開發,在基本的Java應用編程介麵中有一個網絡應用編程介麵(javanet),它提供了用於網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法啟用)機製也是開發分散式應用的重要手段。\\n\\n4、Java語言是健壯的。Java的強類型機製、異常處理、廢料的自動收集等是Java程式健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機製使得Java更具健壯性。\\n\\n5、Java語言是安全的。Java通常被用在網絡環境中,為此,Java提供了一個安全機製以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網絡下載的類具有一個安全防範機製(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節代碼檢查,並提供安全管理機製(類SecurityManager)讓Java應用設置安全哨兵。\\n\\n6、Java語言是體繫結構中立的。Java程式(後綴為java的檔案)在Java平台上被編譯為體繫結構中立的字節碼格式(後綴為class的檔案),然後可以在實現這個Java平台的任何係統中運行。這種途徑適合於異構的網絡環境和軟件的分發。\\n\\n7、Java語言是可移植的。這種可移植性來源於體繫結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java係統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSIC實現的。\\n\\n8、Java語言是解釋型的。如前所述,Java程式在Java平台上被編譯為字節碼格式,然後可以在實現這個Java平台的任何係統中運行。在運行時,Java平台中的Java解釋器對這些字節碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。\\n\\n9、Java是高效能的。與那些解釋型的高級腳本語言相比,Java的確是高效能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發展越來越接近於C 。\\n\\n10、Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable)的構造子將一個實現了Runnable介麵的對象包裝成一個線程,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable介麵,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控製。Java語言支援多個線程的同時執行,並提供多線程之間的同步機製(關鍵字為synchronized)。\\n\\n11、Java語言是動態的。Java語言的設計目標之一是適應於動態變化的環境。Java程式需要的類能夠動態地被載入到運行環境,也可以通過網絡來載入所需要的類。這也有利於軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。\\n\\nJava語言的優良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用係統的維護費用。Java對對象技術的全麵支援和Java平台內嵌的API能縮短應用係統的開發時間並降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平台之間傳遞資訊的低成本方式。特彆是Java企業應用編程介麵(JavaEnterpriseAPIs)為企業計算及電子商務應用係統提供了有關技術和豐富的類庫。\\n\\njava版本\\n\\n目前JAVA的最新版本為1.7正式版,Oracle官方稱為Java7。\\n\\n目前通用版本為1.5與1.6。\\n\\n相關技術\\n\\n1.JDBC(JavaDatabaseConnectivity)提供連接各種關係數據庫的統一介麵,作為數據源,可以為多種關係數據庫提供統一訪問,它由一組用Java語言編寫的類和介麵組成。JDBC為工具\\/數據庫開發人員提供了一個標準的API,據此可以構建更高級的工具和介麵,使數據庫開發人員能夠用純JavaAPI編寫數據庫應用程式,同時,JDBC也是個商標名。\\n\\n2.EJB(EnterpriseJavaBeans)使得開發者方便地創建、部署和管理跨平台的基於組件的企業應用。\\n\\n3.JavaRMI(JavaRemoteMethodInvocation)用來開發分散式Java應用程式。一個Java對象的方法能被遠程Java虛擬機調用。這樣,遠程方法啟用可以發生在對等的兩端,也可以發生在客戶端和服務器之間,隻要雙方的應用程式都是用Java寫的。\\n\\n4.JavaIDL(JavaInterfaceDefinitionLanguage)提供與CORBA(CommonObjectRequestBrokerArchitecture)的無縫的互操作性。這使得Java能整合異構的商務資訊資源。\\n\\n5.JNDI(JavaNamingandDirectoryInterface)提供從Java平台到的統一的無縫的連接。這個介麵遮蔽了企業網絡所使用的各種命名和目錄服務。\\n\\n6.JMAPI(JavaManagementAPI)為異構網絡上係統、網絡和服務管理的開發提供一整套豐富的對象和方法。\\n\\n7.JMS(JavaMessageService)提供企業訊息服務,如可靠的訊息隊列、釋出和訂閱通訊、以及有關推拉(Push\\/Pull)技術的各個方麵。\\n\\n8.JTS(JavatransactionService)提供存取事務處理資源的開放標準,這些事務處理資源包括事務處理應用程式、事務處理管理及監控。\\n\\n9.JMF(JavaMediaFrameworkAPI),她可以幫助開發者把音頻、視頻和其他一些基於時間的媒體放到Java應用程式或applet小程式中去,為多媒體開發者提供了捕捉、回放、編解碼等工具,是一個彈性的、跨平台的多媒體解決方案。\\n\\n10.Annotation(JavaAnnotation),在已經釋出的JDK1.5(tiger)中增加新的特色叫Annotation。Annotation提供一種機製,將程式的元素如:類,方法,屬性,參數,本地變量,包和元數據聯絡起來。這樣編譯器可以將元數據存儲在Class檔案中。這樣虛擬機和其它對象可以根據這些元數據來決定如何使用這些程式元素或改變它們的行為。\\n\\n在Java技術中,值得關注的還有JavaBeans,它是一個開放的標準的組件體繫結構,它獨立於平台,但使用Java語言。一個JavaBean是一個滿足JavaBeans規範的Java類,通常定義了一個現實世界的事物或概念。一個JavaBean的主要特征包括屬性、方法和事件。通常,在一個支援JavaBeans規範的開發環境(如SunJavaStudio和IBMVisualAgeforJava)中,可以可視地操作JavaBean,也可以使用JavaBean構造出新的JavaBean。JavaBean的優勢還在於Java帶來的可移植性。現在,EJB(EnterpriseJavaBeans)將JavaBean概念擴展到Java服務端組件體繫結構,這個模型支援多層的分散式對象應用。除了JavaBeans,典型的組件體繫結構還有DCOM和CORBA,關於這些組件體繫結構的深入討論超出了本書的範圍。\\n\\n11.javaFX Sun剛剛釋出了JavaFX技術的正式版,它使您能利用JavaFX編程語言開發富互聯網應用程式(RIA)。JavaFXScript編程語言(以下稱為JavaFX)是Sun微係統公司開發的一種declarative,staticallytyped(聲明性的、靜態類型)腳本語言。JavaFX技術有著良好的前景,包括可以直接調用JavaAPI的能力。因為JavaFXScript是靜態類型,它同樣具有結構化代碼、重用性和封裝性,如包、類、繼承和單獨編譯和釋出單元,這些特性使得使用Java技術創建和管理大型程式變為可能。\\n\\n12.JMX(JavaManagementExtensions,即Java管理擴展)是一個為應用程式、設備、係統等植入\\n\\n管理功能的框架。JMX可以跨越一係列異構操作係統平台、係統體繫結構和網絡傳輸協議,靈活的開發無縫\\n\\n整合的係統、網絡和服務管理應用。\\n\\n13.JPA(JavaPersistenceAPI),JPA通過JDK5.0註解或XML描述對象-關係表的對映關係,並將運行期的實體對象持久化到數據庫中。\\n\\njava-參見\\n\\n計算機科學課程列表\\n\\nJNI(JavaNativeInterface)Java本地介麵,可以使用其他語言來實現Java的某些特定功能。\\n\\n開源項目\\n\\nSpringFramework【Java開源J2EE框架】\\n\\nSpring是一個解決了許多在J2EE開發中常見的問題的強大框架。Spring提供了管理業務對象的一致方法並且鼓勵了注入對介麵編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的InversionofControl容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方麵是獨一無二的。Spring提供了唯一的數據訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還整合了Hibernate和其他O\\/Rmapping解決方案。Spring還提供了唯一的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的編程模型。Spring提供了一個用標準Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務管理和其他企業事務--如果你需要--還能實現你自己的aspects。這個框架足夠強大,使得應用程式能夠拋開EJB的複雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器整合的強大而靈活的MVCWeb框架。【SpringIDE:Eclipse平台下一個輔助開發外掛】。\\n\\nWebWork【Java開源Web框架】\\n\\nWebWork是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EEWeb框架。WebWork目前最新版本是2.1,現在的WebWork2.x前身是RickardOberg開發的WebWork,但現在WebWork已經被拆分成了Xwork1和WebWork2兩個項目。Xwork簡潔、靈活功能強大,它是一個標準的Command模式實現,並且完全從web層脫離出來。Xwork提供了很多核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,強大的表達式語言(OGNL–theObjectGraphNotationLanguage),IoC(InversionofControl倒置控製)容器等。WebWork2建立在Xwork之上,處理HTTP的響應和請求。WebWork2使用ServletDispatcher將HTTP請求的變成Action(業務層Action類),session(會話)application(應用程式)範圍的對映,request請求參數對映。WebWork2支援多視圖表示,視圖部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。在WebWork2.2中新增了對AJAX的支援,這支援是構建在DWR與Dojo這兩個框架的基礎之上。【EclipseWork:用於WebWork輔助開發的一個Eclipse外掛】\\n\\nStruts【Java開源Web框架】\\n\\nStruts是一個基於SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和資訊資源(messageresources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。【StrutsIDE:用於Struts輔助開發的一個Eclipse外掛】\\n\\nHibernate【Java開源持久層框架】\\n\\nHibernate是一個開放源代碼的對象關係對映框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程式員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式實用,也可以在Servlet\\/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Eclipse平台下的Hibernate輔助開發工具:【HibernateSynchronizer】【MiddlegenIDE】\\n\\nQuartz【Java開源Job調度】\\n\\nQuartz是OpenSymphony開源組織在Jobscheduling領域又一個開源項目,它可以與J2EE與J2SE應用程式相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣複雜的日程式表。Jobs可以做成標準的Java組件或EJBs。Quartz的最新版本為Quartz1.5.0。\\n\\nVelocity【Java開源模板引擎】\\n\\nVelocity是一個基於java的模板引擎(templateengine)。它允許任何人僅僅簡單的使用模板語言(templatelanguage)來引用由java代碼定義的對象。當Velocity應用於web開發時,介麵設計人員可以和java程式開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁麵設計人員可以隻關注頁麵的顯示效果,而由java程式開發人員關注業務邏輯編碼。Velocity將java代碼從web頁麵中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他係統的整合組件使用。Velocity也可以為Turbineweb開發架構提供模板服務(templateservice)。Velocity Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。【VeloEclipse:Velocity在Eclipse平台下的一個輔助開發外掛】\\n\\nIBATIS【Java開源持久層框架】\\n\\n使用ibatis提供的ORM機製,對業務邏輯實現人員而言,麵對的是純粹的Java對象,這一層與通過Hibernate實現ORM而言基本一致,而對於具體的數據操作,Hibernate會自動生成SQL語句,而ibatis則要求開發者編寫具體的SQL語句。相對Hibernate等“全自動”ORM機製而言,ibatis以SQL開發的工作量和數據庫移植性上的讓步,為係統設計提供了更大的自由空間。作為“全自動”ORM實現的一種有益補充,ibatis的出現顯得彆具意義。\\n\\nCompiereERP&CRM【Java開源ERP與CRM係統】\\n\\nCompiereERP&CRM為全球範圍內的中小型企業提供綜合型解決方案,覆蓋從客戶管理、供應鏈到財務管理的全部領域,支援多組織、多幣種、多會計模式、多成本計算、多語種、多稅製等國際化特性。易於安裝、易於實施、易於使用。隻需要短短幾個小時,您就可以使用申購-采購-發票-付款、報價-訂單-發票-收款、產品與定價、資產管理、客戶關係、供應商關係、員工關係、經營業績分析等強大功能了。\\n\\nRollerWeblogger【Java開源Blog部落格】\\n\\n這個weblogging設計得比較精巧,源代碼是很好的學習資料。它支援weblogging應有的特性如:評論功能,所見即所得HTML編輯,TrackBack,提供頁麵模板,RSSsyndication,blogroll管理和提供一個XML-RPC介麵。\\n\\nEclipse【Java開源開發工具】\\n\\nEclipse平台是IBM向開放源碼社區捐贈的開發框架,它之所以出名並不是因為IBM宣稱投入開發的資金總數—4千萬美元,而是因為如此巨大的投入所帶來的成果:一個成熟的、精心設計的以及可擴展的體繫結構。\\n\\nNetBeans【Java開源開發工具】\\n\\nNetBeansIDE是一個為軟件開發者提供的自由、開源的整合開發環境。您可以從中獲得您所需要的所有工具,用Java、C\\/C 甚至是Ruby來創建專業的桌麵應用程式、企業應用程式、web和移動應用程式。此IDE可以在多種平台上運行,包括Windows、Linux、MacOSX以及Solaris;它易於安裝且非常方便使用。\\n\\nXPlanner【Java開源項目管理】\\n\\nXPlanner一個基於Web的XP團隊計劃和跟蹤工具。XP獨特的開發概念如iteration、userstories等,XPlanner都提供了相對應的的管理工具,XPlanner支援XP開發流程,並解決利用XP思想來開發項目所碰到的問題。XPlanner特點包括:簡單的模型規劃,虛擬筆記卡(Virtualnotecards),iterations、userstories與工作記錄的追蹤,未完成stories將自動迭代,工作時間追蹤,生成團隊效率,個人工時報表,SOAP介麵支援。\\n\\nHSQLDB【Java開源DBMS數據庫】\\n\\nHSQLDB(HypersonicSQL)是純Java開發的關係型數據庫,並提供JDBC驅動存取數據。支援ANSI-92標準SQL語法。而且他占的空間很小。大約隻有160K,擁有快速的數據庫引擎。\\n\\nLiferay【Java開源Portal門戶】\\n\\n代表了完整的J2EE應用,使用了Web、EJB以及JMS等技術,特彆是其前台介麵部分使用Struts框架技術,基於XML的portlet配置檔案可以自由地動態擴展,使用了WebServices來支援一些遠程資訊的獲取,使用ApahceLucene實現全文檢索功能。\\n\\nJetSpeed【Java開源Portal門戶】\\n\\nJetspeed是一個開放源代碼的企業資訊門戶(EIP)的實現,使用的技術是Java和XML。用戶可以使用瀏覽器,支援WAP協議的手機或者其它的設備訪問Jetspeed架設的資訊門戶獲取資訊。Jetspeed扮演著資訊集中器的角色,它能夠把資訊集中起來並且很容易地提供給用戶。\\n\\nJOnAS【Java開源J2EE服務器】\\n\\nJOnAS是一個開放源代碼的J2EE實現,在ObjectWeb協會中開發。整合了Tomcat或Jetty成為它的Web容器,以確保符合Servlet2.3和JSP1.2規範。JOnAS服務器依賴或實現以下的JavaAPI:JCA、JDBC、JTA、JMS、JMX、JNDI、JAAS、JavaMail。\\n\\nJFox3.0【Java開源J2EE服務器】\\n\\nJFox是OpenSourceJavaEEApplicationServer,致力於提供輕量級的JavaEE應用服務器,從3.0開始,JFox提供了一個支援模塊化的MVC框架,以簡化EJB以及Web應用的開發!如果您正在尋找一個簡單、輕量、高效、完善的JavaEE開發平台,那麼JFox正是您需要的。\\n\\nJavaIDE\\n\\n當今最流行的是Eclipse、Myeclipse、Jbuilder2006、Jdeveloper、Netbeans、intellij、JCreatorPro、IntelliJ等。\\n\\n行業複合\\n\\nJava與Internet\\n\\nJava並不是為Internet、www而設計的,它也可以用來編寫獨立的應用程式。Java是一種麵嚮物件語言,Java語言類似於C 語言。Java程式需要編譯,它被放置在Internet服務器上,當用戶訪問服務器時,Java程式被下載到本地的用戶機上,由瀏覽器解釋運行。實際上有兩種Java程式:一種Java應用程式是一個完整的程式,如Web瀏覽器。另一種Java小應用程式是運行於Web瀏覽器中的一個程式。\\n\\nJava程式和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程式的方法。你能從你的瀏覽器裡直接播放聲音,你還能播放頁麵裡的動畫,Java還能告訴你的瀏覽器怎樣處理新的類型檔案。當我們能在2400baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。\\n\\nJava與電子商務\\n\\n電子商務要求程式代碼具有基本的要求:安全、可靠、同時要求能與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時麵向對象,在網絡編程語言中占據無可比擬的優勢,成為實現電子商務係統的首選語言。\\n\\n相關資訊\\n\\njava\\n\\njava原始類型包裝類原始類型所占的字節數\\n\\nshortShort2個字節\\n\\nintInteger4個字節\\n\\nlongLong8個字節\\n\\nfloatFloat4個字節\\n\\ndoubleDouble8個字節\\n\\nbyteByte1個字節\\n\\ncharCharacter2個字節\\n\\nbooleanBoolean這個視編譯環境而定\\n\\n架構設計\\n\\n軟件架構作為一個概念,體現在技術和業務兩個方麵。\\n\\n從技術角度來說:軟件架構隨著技術的革新不斷地更新其內容,軟件架構建立於當前技術和一些基本原則的基礎之上。\\n\\n先說一些基本原則:\\n\\n分層原則:分層是為了降低軟件深度複雜性而使用的關鍵思想,就像社會有了階級一樣,軟件有了層次結構。\\n\\n模塊化原則:模塊化是化解軟件廣度複雜的必然手段,模塊化的目的就是讓軟件分工。\\n\\n介麵實現分離原則隨著軟件模塊化的不斷深入改進,麵向介麵編程而不是麵向實現編程可以讓複雜度日趨增高的軟件降低模塊之間的耦合度,從而讓各模塊更輕鬆改進。從這個原則出發,軟件也從微觀進行了細緻的規範化。\\n\\n還有兩個比較小但很重要的原則:\\n\\n細節隱藏原則很顯然把複雜問題簡化,把難看的細節隱去,能讓軟件結構更清晰。其實這個原則使用很普遍,java\\/c 語言中的封裝原則以及設計模式中的Facade(外觀)模式就很能體現這個原則的精神。\\n\\n依賴倒置原則隨著軟件結構的進一步發展,層與層之間、模塊與模塊之間的依賴逐漸加深,而層、模塊的動態可插拔要求不斷增大。依賴倒置原則可視為介麵實現分離原則的深化,根據此原則的精神,軟件進入了工具時代。這個原則有點類似於知名的好萊塢法則:Don'tcallus,we'llcallyou。\\n\\n以上這些原則奠定了我們的軟件架構的價值指標。但軟件架構畢竟是建立在當前技術之上的。而每一代技術都有架構模式。過去的不再說了,讓我們現在就來看一下當前流行的技術,以及當前我們能采用的架構。\\n\\n因為麵向對象是當前最流行開發技術,且設計模式的大量使用使麵向對象的走向成熟,而數據庫是當前最有效的存儲結構、web介麵是當前最流行的用戶介麵,所以當前最典型的三層次架構就架構在以上幾項技術的基礎之上,用數據庫作存儲層、用麵向對象來實現業務層、用web來作為用戶介麵層。我們從三層次架構談起:\\n\\n因為麵向對象技術和數據庫技術不適配,所以在標準三層次架構的基礎上,我們增加了數據持久層,來管理O-R雙向對映,但目前一直冇有最理想的實現技術。cmp和entitybean技術因為其實現複雜,功能前景有限,已接近被淘汰的邊緣。JDO及hibernate作為o-r對映的後期之秀,尤其是hibernate,功能相當完備。推薦作為持久層的首選\\n\\n在業務層,因為當前業務日趨負載,且變動頻繁,所以我們必須有足夠敏捷的技術來保證我們的適應變化的能力,在標準j2ee係統中sessionbean負責業務處理,且有不錯的效能表現,但采用ejb係統對業務架構模式改變太大,且其複雜而昂貴,業務代碼移植性差。而spring作為一個bean配置的輕量級架構,漂亮的IOC模式實現,對業務架構影響小,所以推薦作為中間層業務框架。\\n\\n在用戶結構層,雖然servlet\\/jsp\\/jstl\\/javaBean能夠實現MVC架構,但終究過於粗糙。struts對MVC架構的實現就比較完美,Taperstry也極好地實現MVC架構,且采用基於事件的方式,非常誘人,惜其不夠成熟,我們仍舊推薦struts作為用戶介麵層基礎架構。\\n\\n因為業務層是三層次架構中最有決定意義的,所以讓我們回到業務層細緻地分析一下,在複雜的業務我們常常需要以下基礎服務的一種或幾種:事務一致性服務acid(tool:jta\\/jts)、併發加鎖服務concurrent&&lock、池化管理服務cache、訪問控製服務(tool:jaas)、流程控製服務workflow、動態實現服務IOC,序列化訊息服務(tool:jms)、負載平衡服務blance等。如果我們不采用重量級應用服務器(如weblogic,websphere,jboss等)及重量級組件(EJB),我們必須自己實現其中一些服務。雖然我們大多情況下,不需要所有這些服務,但實現起來卻非易事。幸運的是我們有大量的開源實現代碼,但采用開源代碼卻常常是件不輕鬆的事。\\n\\n隨著xml作為結構化資訊傳輸和存儲地位日漸重要,一些xml文檔操作工具(DOM,Digester,SAX等)的使用愈發重要,而隨著xmlschema的javabinding工具(jaxb,xmlbean等)工具的成熟,采用xmlschema來設計xml文檔格式,然後采用javabinding來生成javabean會成為主要編程模式,而這又進一步使數據中心向xml轉移,使在中小數據量上,愈發傾向於以xquery為查詢語言的xml數據庫。最近還有一個趨勢,microsoft,ibm等紛紛大量開發中間軟件如(microsoftoffice之infopath),可以直接從xmlschema生成錄入頁麵等非常實用的功能。還有webservice的廣泛應用,都將對軟件的架構有非常重大的影響。至於麵向服務架構(SOA)前景如何,三層次架構什麼時候走入曆史,現在還很難定論。\\n\\naop的發展也會對軟件架構有很深的影響,但在麵向對象架構裡,無論aspectJ還是jboss-aop抑是aspectWerks、nanning都有其自身的嚴重問題:維護性很差,所以說它將很難走遠。也許作為一個很好的思想,它將在webservice裡大展身手。\\n\\nrdf,owl作為w3c語義模型的標誌性的語言,也很難想象能在當前業務架構發揮太大影響。但如果真如它所聲稱那樣,廣泛地改變著資訊的結構。那麼對軟件架構也會有深遠影響。\\n\\ne平台構架與版本\\n\\n平台\\n\\nJava平台由Java虛擬機(JavaVirtualMachine)和Java應用編程介麵(ApplicationProgrammingInterface、簡稱API)構成。Java應用編程介麵為Java應用提供了一個獨立於操作係統的標準介麵,可分為基本部分和擴展部分。在硬體或操作係統平台上安裝一個Java平台之後,Java應用程式就可運行。現在Java平台已經嵌入了幾乎所有的操作係統。這樣Java程式可以隻編譯一次,就可以在各種係統中運行。Java應用編程介麵已經從1.1x版發展到1.2版。目前常用的Java平台基於Java1.5,最近版本為Java1.7。\\n\\nJava分為三個體係JavaSE(Java2PlatformStandardEdition,java平台標準版),JavaEE(Java2Platform,EnterpriseEdition,java平台企業版),JavaME(Java2PlatformMicroEdition,java平台微型版)。\\n\\nJavaSE\\n\\n*JavaSE(JavaPlatform,StandardEdition)。JavaSE以前稱為J2SE。它允許開發和部署在桌麵、服務器、嵌入式環境和實時環境中使用的Java應用程式。JavaSE包含了支援JavaWeb服務開發的類,併爲JavaPlatform,EnterpriseEdition(JavaEE)提供基礎。\\n\\nJAVASE軟件應用圖片:\\n\\nJavaEE\\n\\n*JavaEE(JavaPlatform,EnterpriseEdition)。這個版本以前稱為J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的服務器端Java應用程式。JavaEE是在JavaSE的基礎上構建的,它提供Web服務、組件模型、管理和通訊API,可以用來實現企業級的麵向服務體繫結構(service-orientedarchitecture,SOA)和Web2.0應用程式。\\n\\nJavaME\\n\\n*JavaME(JavaPlatform,MicroEdition)。這個版本以前稱為J2ME,也叫K-JAVA。JavaME為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和列印機)上運行的應用程式提供一個健壯且靈活的環境。JavaME包括靈活的用戶介麵、健壯的安全模型、許多內置的網絡協議以及對可以動態下載的連網和離線應用程式的豐富支援。基於JavaME規範的應用程式隻需編寫一次,就可以用於許多設備,而且可以利用每個設備的本機功能。\\n\\n圖書\\n\\nJava語言導學(第4版)\\n\\n原書名:TheJavaTutorial:AShortCourseontheBasics,4thEdition原出版社:PrenticeHallPTR作者:(美)SharonZakhourScottHommelJacobRoyalIsaacRabinovitchTomRisserMarkHoeber出版社:人民郵電出版社ISBN:9787115173072\\n\\n本書是Sun公司指定Java教程的最新版。書中除了講解麵向對象的編程概念、語言基礎、類和對象、介麵和繼承、包、數字和字串、異常、基本I\\/O、集合、併發、Swing、把程式打包到JAR檔案中、applet之外,還介紹了JavaWebStart、平台環境和正則表達式,同時涵蓋了Java5.0和6.0引入的新特性,比如泛型和併發、註解。附錄B中還給出如何準備Java編程語言認證考試方麵的內容。此外,本書配套的網上資源還包含本書的示例以及問題和練習的答案、在線JavaSE指南、JavaSE開發工具包(JavaSEDevelopmentKit,JDK)、相應的API規範和指導文檔等。\\n\\n本書既適合作為高校相關專業Java程式設計語言課程的教材,也適合各種層次的Java程式員閱讀。\\n\\nJava編程思想(第4版)\\n\\n作 者:(美)埃克爾著,陳昊鵬譯\\n\\nJava編程思想(第4版)\\n\\nJava編程思想(第4版)出版社:機械工業出版社\\n\\n出版時間:2007-6-1\\n\\n字 數:\\n\\n版 次:1\\n\\n頁 數:880\\n\\n印刷時間:2007\\/06\\/01\\n\\n開 本:\\n\\n印 次:\\n\\n紙 張:膠版紙\\n\\nISBN:9787111213826\\n\\n包 裝:平裝\\n\\n作者\\n\\nBruceEckel是MindView公司的總裁,該公司向客戶提供軟件谘詢和培訓。他是C 標準委員會擁有表決權的成員之一,擁有應用物理學學士和計算機工程碩士學位。除本書外,他還是《C 編程思想》的作者,並與人合著了《C 編程思想第2卷》(這兩本書的英文影印版及中文版均已由機械工業出版社引進出版)及其他著作。他已經發表了150多篇論文,還經常參加世界各地的研討會並進行演講。\\n\\n發展前景\\n\\n自從sun被甲骨文收購以後,java的發展前景就變得撲朔迷離起來,很多程式開發者都感到很迷惑。2010年4月9日,被稱為Java之父的JamesGosling又在個人部落格上宣佈離開Oracle,這一事件更為Java的前景增加了一層迷霧。但是在進入5月份之後,一切開始變得明朗起來。 首先是Oracle在Java的後續支援方麵,宣佈了一些列關於Java的相關計劃。然後是Java之父JamesGosling繼聲明Java不會死去之後又盛讚Oracle對Java所做的貢獻。在Oracle的活動釋出網站上,連續釋出了多個關於Java的推廣活動。5月12日,Oracle主要產品負責人DaveHofert將大談對JavaSE商業應用的改進和革新。根據宣傳資料,在這次演講中,DaveHofert將提到以下問題:商業版與社區版本之間平台支援的差異。如何獲得專家幫助,以幫助企業增強其Java應用。對於舊版本的安全修補問題。可使用的釋出工具和更新。6月18、19、20、27日,將分彆在赫爾辛基、斯圖加特、布達佩斯、倫敦舉行Oracle、Sun專家與用戶見麵會,在見麵會上與用戶一起探討Java的發展路線。主要討論的問題包括Oracle將如何繼續投資和改進Java技術,並且還會向用戶通報JavaSE、JavaME專家團隊的最新訊息、JavaFX和JDK7最新的訊息,以及OracleBerkeleyDB的相關資訊。5月3日,已經離開Oracle近一個月的Java之父JamesGosling在他的部落格上表達了對NetBeans6.9和FX1.3釋出的關心。這兩個項目最新版本的釋出,可以證明Oracle已經開始兌現當初的承諾。JamesGosling在其早期的部落格中,也透露了不會放棄Java事業,隻是需要解決一些與Oracle之間的法律問題。這一切跡象表明,Oracle絕對不會輕易放棄Java這塊巨大的蛋糕,並且Oracle也開始逐漸學會了對開源社區的尊重。首先在JDK的商業版本方麵,Oracle將會繼續深入挖掘Java的商業利益,與其固有產品進行更深入的整合。在社區版本方麵,Oracle將與Java開發者一起探討和研發Java的技術。這裡需要特彆提到的一個產品是OracleBerkeleyDB,該產品是Oracle一直支援的一個開源非關係數據庫產品,在NOSQL大行其道的今天,如果Oracle能夠將BerkeleyDB與Java進行深入整合,將會為Java帶來更多的活力和生命。從JamesGosling的表現來看,他似乎與Oracle之間已經達成某種諒解,並且有進一步合作的可能性。\\n\\nJava和3G企業級開發相結合\\n\\nAndroid是第一個內置支援Java的操作係統,Android應用程式使用Java語言編寫。Android開發水平的高低很大程度上取決於Java語言核心能力是否紮實。另外一方麵,3G應用往往會和企業級應用相互結合。因此,在3G—Android課程體係中將Android課程與JavaEE課程緊密結合,以Android課程為主,以JavaEE課程為輔,配合真實的企業級項目,不但可以深入掌握基於Android平台的智慧手機開發技術,更重要的是還係統掌握了智慧移動終端與JavaEE服務器端相結合的諸多領域商業的應用。\\n\\nJava試圖通過新的方式解決軟件編寫的複雜性。很多人認為Java語言做到了它承諾的一切。但是Java並不是一門完美的語言。\\n\\n整體性問題\\n\\n並不是所有的工程和環境需要企業級彆的複雜性,比如一個簡單的個人網站或者獨自編程的程式師所寫的程式。這些程式師會發現Java的複雜管理對於自己要做的程式來說過於強大了。一些人覺得Java在麵向對象上麵做的冇有Ruby和Smalltalk純粹。但是最新出現的用Java實現的語言Groovy解決了這些問題。\\n\\n作為一種已經創建的新技術,Java顯然綜合了很多語言的特性,比如C 、C語言、Python等等。一些對於Java的評論認為Java的不變性在動搖。\\n\\n語言問題\\n\\n有些程式師不喜歡原始類型(primitivetype)和類型(class)的分離,尤其是那些曾經使用過Smalltalk和Ruby的程式師。Java的代碼相對於其他的代碼來說過於冗長,這與它的輕便化聲明相違背。\\n\\nJava是一種單層繼承的語言。這也導致了程式師在試圖使用多重繼承時候的不便,而很多語言都可以使用這個特性。但是Java可以使用介麵類,把多重繼承可能導致的風險減少到最小。Java不支援運算符重載,這是為了防止運算符重載使得代碼的功能變得不清晰。但是用Java實現的語言Groovy可以進行運算符重載。過去Java對於文字的操作和其他語言,比如Perl和PHP相比差的較多,但Java在1.4版本時候引入了正則表達式。\\n\\n類庫問題\\n\\n使用Swing平台編寫的帶有GUI(圖形用戶介麵)的程式和其他原始程式非常不同。選用AWT工具包編寫程式的程式師看到的都是原始介麵,而且也無法獲得先進的GUI編程支援,如果使用的話,就要提供每個平台上麵所需的API,這將是一項龐大的工程。Swing則是完全用Java語言所寫的程式,避免了介麵元素重複的問題,隻使用所有平台都支援的最基本的繪圖機製。但是很多用戶不知道如何在Java風格和Windows風格之間進行轉換,結果造成了Java程式的介麵在很多程式中非常特殊。蘋果電腦已經提供了優化過的Java運行時程式,包含了MacOSX的經典Aqua介麵風格。\\n\\n效能問題\\n\\n由於Java編譯器和虛擬機的不同對Java代碼的效能影響比語言本身的影響大的多,所以統一討論Java的程式的效能經常是有誤導性的。據IBM的數據,在同樣的硬體上2001年時的IBMJDK版本的效能是1996年的JDK版本的十倍左右。即使是在同一時期,不同公司的JDK和JRE的效能也不一樣,比如SUN、IBM、BEA等公司都有自己開發的JDK和JRE。\\n\\nJava語言的一些特性不可避免的有額外的效能代價,例如數組範圍檢查、運行時類型檢查等等。Java程式的效能還會因為不同的動態複雜性和垃圾處理機製使用的多少而各有不同。如果JVM的實現比較優化的話,那麼這些功能甚至可以增加存儲器分配的效能。這和總是使用STL或者托管C 的程式的情況類似。\\n\\nJava的設計目的主要是安全性和可攜性,所以對於一些特性,比如對硬體架構和存儲器地址訪問的直接訪問都被去除了。如果需要間接調用這些底層功能的話,就需要使用JNI(Java本地介麵)來調用本地代碼,而間接訪問意味著頻繁調用這些特性時效能損失會很大,微軟的.NET平台也有這樣的問題。\\n\\n\"

}

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報