版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)2005年6月23日深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第1頁!JAVA簡史Sun的公司,PatrickHaughton和JamesGosling(一個(gè)全能的計(jì)算機(jī)奇才)帶領(lǐng)著Sun的一個(gè)工程師小組,著手設(shè)計(jì)能夠用于像有限電視轉(zhuǎn)換盒一類的消費(fèi)設(shè)備的小型計(jì)算機(jī)語言。由于這些設(shè)備沒有很強(qiáng)的處理能力和太多內(nèi)存,所以這個(gè)語言必須非常小并能夠生成非常緊湊的代碼。另外,因?yàn)椴煌膹S商可能選折不同的CUP,所以這個(gè)語言不能夠限定在一個(gè)單一的體系結(jié)構(gòu)下。這個(gè)項(xiàng)目的名稱是“Green”.深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第2頁!JAVA簡史對代碼短小,緊湊,與平臺(tái)無關(guān)的要求使得開發(fā)團(tuán)隊(duì)找出了很早以前的一個(gè)模型。一些Pascal實(shí)現(xiàn)曾經(jīng)在早期PC上試過這個(gè)模型,以Pascal的發(fā)明者NucleusWirth為先驅(qū),而UCSDPascal對此做的商業(yè)實(shí)現(xiàn)是要設(shè)計(jì)一種能夠?yàn)榧傧霗C(jī)器生成中間代碼的可移植的語言(假想機(jī)器被稱為虛擬機(jī),Java虛擬機(jī)(JVM)也由此而來)。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第3頁!JAVA簡史對代碼短小,緊湊,與平臺(tái)無關(guān)的要求使得開發(fā)團(tuán)隊(duì)找出了很早以前的一個(gè)模型。一些Pascal實(shí)現(xiàn)曾經(jīng)在早期PC上試過這個(gè)模型,以Pascal的發(fā)明者NucleusWirth為先驅(qū),而UCSDPascal對此做的商業(yè)實(shí)現(xiàn)是要設(shè)計(jì)一種能夠?yàn)榧傧霗C(jī)器生成中間代碼的可移植的語言(假想機(jī)器被稱為虛擬機(jī),Java虛擬機(jī)(JVM)也由此而來)。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第4頁!JAVA簡史1997年,Sun公司因?yàn)镴ava的一些不兼容性而起訴Microsoft公司,喀拉喀托火山也開始活躍起來(從此爪哇島每年要發(fā)生大約十次火山爆發(fā),也許這只是一種巧合吧)。隨著官司越打越大,島上居民的生活也越來越難過了,雅加達(dá)的經(jīng)濟(jì)危機(jī),造成蘇哈托總統(tǒng)下臺(tái),東帝汶提出要求政治自由。SunJava也發(fā)生了同樣激烈的血戰(zhàn),最終于2001年判決Microsoft公司受罰兩千萬美元。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第5頁!JAVA簡史1998年JavaOne會(huì)議的最大新聞是Java1.2版的即將發(fā)布,該版本用老練的,可伸縮的版本取代了早期版本中玩具樣的GUI和圖形工具箱,從而比其先前版本更接近“一次編寫,到處運(yùn)行”的承諾。1998年12月Java1.2版本發(fā)布的3天后,Sun的市場部門把名字改為更響亮的“Java2標(biāo)準(zhǔn)版軟件開發(fā)工具箱1.2版”。隨后出現(xiàn)的1.3版,1.4版都是在最初的Java2版本基礎(chǔ)上的增量改進(jìn),增加了一些新特性,提升了性能,當(dāng)然也修正了一些bug深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第6頁!JAVA的優(yōu)點(diǎn)Java的一個(gè)顯著優(yōu)點(diǎn)就是運(yùn)行時(shí)環(huán)境提供了平臺(tái)無關(guān)性:你可以在Windows,Solaris,Linux或者其他操作系統(tǒng)上使用完全一樣的代碼。這點(diǎn)對于在各種不同平臺(tái)上運(yùn)行從Internet上下載的程序來說很有必要。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第7頁!JAVA的優(yōu)點(diǎn)然而,Java絕不僅僅是某種經(jīng)過改善的C++方言。很關(guān)鍵的一點(diǎn)在于:用Java開發(fā)沒有bug的代碼比用C++要簡單的多。原因何在呢??Java的設(shè)計(jì)者仔細(xì)研究了是什么使得C++代碼這么容易出現(xiàn)bug。他們?yōu)镴ava增加了一些特性,來消除出現(xiàn)常見bug的可能性:深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第8頁!JAVA的優(yōu)點(diǎn)3,他們消除了在條件性語句中弄混賦值和相等測試的可能性。比如,你根本不能編譯通過if(n=3)…這樣的語句。(VB,PB程序員可能注意不到這種問題,但是請相信,在C/C++代碼中,這種語句是導(dǎo)致常見的錯(cuò)誤根源。)深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第9頁!JAVA技術(shù)特點(diǎn)
簡單性在一次C++會(huì)議上,Sun公司創(chuàng)始人之一BillJoy(現(xiàn)為首席科學(xué)家)指出,“C++太復(fù)雜,我要的是C++++--”。Java正是滿足了這個(gè)要求。Java加進(jìn)了自動(dòng)內(nèi)存回收之類的新任務(wù)(++),減去了C++中費(fèi)解而不常用的方面,如運(yùn)算符重載(--)。
深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第10頁!JAVA技術(shù)特點(diǎn)
簡單性1,類來自C++和Smalltalk,但Java只限于單實(shí)現(xiàn)繼承。2,接口來自O(shè)bjective-C,向Java提供多接口繼承。3,包來自Modula,在Java中增加了層次試名字空間和邏輯開發(fā)單元。4,并發(fā)性來自Mesa,Java內(nèi)置多線程支持。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第11頁!JAVA技術(shù)特點(diǎn)
面向?qū)ο蠛唵蝸碚f,面向?qū)ο笤O(shè)計(jì)是一種把重點(diǎn)放在數(shù)據(jù)(等于對象)和對象接口的編程技術(shù)。用問題空間中的元素與對象描述問題,而不是用計(jì)算機(jī)中執(zhí)行的一系列步驟來描述。這樣,好的設(shè)計(jì)就能得到可復(fù)用,可擴(kuò)展和可維護(hù)的組件。這些組件相當(dāng)靈活,可以處理環(huán)境的改變,因?yàn)檫@些對象的主要工作就是相互之間來回發(fā)送消息。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第12頁!JAVA技術(shù)特點(diǎn)
分布式從1982年成立時(shí)起,Sun公司的思想一直是“網(wǎng)絡(luò)就是計(jì)算機(jī)”,Java編程語言要求支持網(wǎng)絡(luò)和像本地對象一樣方便地訪問分布式對象。這個(gè)目標(biāo)一開始就已經(jīng)提出,但Java的功能是不斷改變的。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第13頁!JAVA技術(shù)特點(diǎn)
解釋性Java程序是解釋性的,不是編譯成自然執(zhí)行碼,而是轉(zhuǎn)換成平臺(tái)中立的字節(jié)碼。這些字節(jié)碼可以傳輸?shù)饺魏尉哂蠮ava運(yùn)行環(huán)境(JRE,JavaRuntimeEnvironment)的平臺(tái),其中包括Java虛擬機(jī)(JVM,JavaVirtualMachine),從而在執(zhí)行時(shí)不需要重新編譯或重新鏈接。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第14頁!JAVA技術(shù)特點(diǎn)
健壯性健壯性反映程序的可靠性。Java的幾個(gè)內(nèi)置特性使程序的可靠性得到改進(jìn):1,Java是強(qiáng)類型的語言。編譯器和類裝入器保證所有方法調(diào)用的正確性,防止隱式類型失配和版本不兼容性。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第15頁!JAVA技術(shù)特點(diǎn)
安全性Java被設(shè)計(jì)為用于網(wǎng)絡(luò)/分布式環(huán)境。為了達(dá)到這個(gè)目標(biāo),在安全方面投入了很大精力。用Java可以構(gòu)建防病毒和防篡改的系統(tǒng)。
Java安全機(jī)制禁止Java程序進(jìn)行一些操作。下面列出被限制的一些操作:深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第16頁!JAVA技術(shù)特點(diǎn)
體系結(jié)構(gòu)中立體系結(jié)構(gòu)中立性指Java的平臺(tái)中立字節(jié)碼。Java程序不是編譯成平臺(tái)特定的二進(jìn)制碼,而是可以在任何地方執(zhí)行,不需要重新編譯與鏈接。如果公司開發(fā)新硬件,則不必放棄原有的軟件投資,而只要在新平臺(tái)中放上Java運(yùn)行環(huán)境。如果新公司開發(fā)全新的硬件與操作系統(tǒng),則不必從沒有軟件的產(chǎn)品上從零開始,只要放上Java運(yùn)行環(huán)境,新設(shè)計(jì)的平臺(tái)就可以運(yùn)行所有現(xiàn)有Java程序。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第17頁!JAVA技術(shù)特點(diǎn)
高性能也許你認(rèn)為“解釋性”與“高性能”是個(gè)矛盾,但平臺(tái)中立字節(jié)碼可以在運(yùn)行時(shí)轉(zhuǎn)換成CPU特定機(jī)器碼,和自然編譯C/C++代碼以同樣的速度執(zhí)行。Java帶有兩個(gè)運(yùn)行轉(zhuǎn)換工具,可以自動(dòng)完成這個(gè)工作:代工具是即時(shí)(JIT,Just-In-Time)編譯器;第二代工具是HotSpot。實(shí)際上,HotSpot和JIT編譯器的作用是相同的;運(yùn)行時(shí)轉(zhuǎn)換成自然指令集。但是,HotSpot還監(jiān)視代碼執(zhí)行,對經(jīng)常執(zhí)行的塊進(jìn)行速度優(yōu)化,而不是盲目優(yōu)化。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第18頁!JAVA技術(shù)特點(diǎn)
動(dòng)態(tài)性Java還是個(gè)動(dòng)態(tài)語言,這里指的是庫。具體地說,庫可以不斷改變,而程序不需要重新鏈接。Sun公司發(fā)布新Java版本或其他公司發(fā)布新的第三方庫之后,庫中增加了新內(nèi)容,但早期的平臺(tái)中立字節(jié)碼仍然可以工作。只要庫中使用的部分沒有刪除,程序就可以使用,即使庫中增加了新內(nèi)容。前面曾介紹過,Java優(yōu)先采用接口而不是類,從而也保證了這種動(dòng)態(tài)性。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第19頁!JAVA簡史不過,Sun的開發(fā)人員大都具有深厚的Unix背景,因此他們的語言基于C++,而非Pascal。尤其是,他們把語言設(shè)計(jì)成面向?qū)ο蟮?,而不是面向過程的。但正如Gosling在采訪中說:“畢竟,語言只是工具,而非目標(biāo)?!盙osling把他的語言稱為“Oak”.Sun的人后來才發(fā)現(xiàn)Oak已經(jīng)是一門存在著的計(jì)算機(jī)語言的名字,于是他們又把名字改成了“Java”.與爪哇的名字相同。1995年5月23日,Java出現(xiàn)在Sun系統(tǒng)公司的年度SunWorld會(huì)議中,作為公司20項(xiàng)公布項(xiàng)目中的第12項(xiàng)。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第20頁!JAVA簡史下面講講Java平臺(tái)。1995年的Java只是個(gè)編程語言,如今則已成為一個(gè)平臺(tái)。Sun在1996年早期發(fā)部了Java版。人們很快認(rèn)識(shí)到Java1.0并不適合做真正的應(yīng)用開發(fā)。的確,你可以使用Java1.0生成在畫布上隨便游動(dòng)文本的applet。但是你甚至無法用Java1.0進(jìn)行打印。Java1.0顯然太過稚嫩,對黃金時(shí)期的到來還無準(zhǔn)備。它的后繼者,Java1.1填補(bǔ)了最明顯的空缺,極大地提高了反射能力并為GUI編程增加了新的事件模型。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第21頁!
Java標(biāo)準(zhǔn)版API的發(fā)展
版本類和接口的數(shù)目方法和字段數(shù)目1.021221251.150454781.21781209351.32130239011.43020(135個(gè)包)321381.5(5.0)4000以上(166個(gè)包)深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第22頁!JAVA的優(yōu)點(diǎn)Java的另個(gè)優(yōu)點(diǎn)在于它具有和C++類似的語法。這使得C和C++程序員可以很容易地學(xué)習(xí)Java。Java還是完全面向?qū)ο蟮?-----甚至比C++還要面向?qū)ο?。除了?shù)字之類的幾個(gè)基本類型,Java中的一切都是對象。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第23頁!JAVA的優(yōu)點(diǎn)1,Java設(shè)計(jì)者取消了手工內(nèi)存分配和回收。在Java中,內(nèi)存是自動(dòng)進(jìn)行垃圾收集的。你永遠(yuǎn)不必?fù)?dān)心會(huì)出現(xiàn)內(nèi)存崩潰的現(xiàn)象。2,他們引用了真正的數(shù)組而且取消了指針?biāo)惴?。你永遠(yuǎn)不必?fù)?dān)心由于指針操作時(shí)出現(xiàn)的偏移錯(cuò)誤而重寫內(nèi)存區(qū)域。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第24頁!JAVA的優(yōu)點(diǎn)4,他們消除了多重繼承,替換為“接口”(interface)。接口能夠?qū)崿F(xiàn)多重繼承的大部分功能,卻沒有管理多重繼承層次關(guān)系帶來的復(fù)雜性。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第25頁!JAVA技術(shù)特點(diǎn)
簡單性Java簡單性的另一個(gè)方面是Java中沒有任何真正的新東西。如果你看看Java特性集和計(jì)算歷史,則可以發(fā)現(xiàn),一切都是借用現(xiàn)成的東西。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第26頁!JAVA技術(shù)特點(diǎn)
簡單性5,異常處理來自Modula-3,在Java方法中增加了拋出異常的聲明。6,動(dòng)態(tài)鏈接與內(nèi)存回收來自Lisp,Java可以在需要時(shí)裝入類,不需要時(shí)將其釋放。隨著新特性不斷加進(jìn)Java中,這些特性也是從摸索與實(shí)踐中來的。例如:在Java1.5中增加參數(shù)化類型的支持。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第27頁!JAVA技術(shù)特點(diǎn)
面向?qū)ο髮?shí)際上,JavaAPIs是這些預(yù)建組件的集合,稱為類庫。Java中不需要一切從頭開始,也可以從標(biāo)準(zhǔn)庫開始。這些標(biāo)準(zhǔn)庫隨著時(shí)間推移不斷改變,每個(gè)新版本推出更多預(yù)建組件。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第28頁!JAVA技術(shù)特點(diǎn)
分布式最初,Java只能通過HTTP之類的標(biāo)準(zhǔn)TCP/IP協(xié)議訪問分布式對象。而利用最新版的Java平臺(tái),則可以通過CORBA(CommonObjectRequestBrokerArchitecture)與RMI(RemoteMethodInvocation)等協(xié)議和最近增加的WebServices像訪問同一執(zhí)行空間的方法一樣方便而直接地調(diào)用遠(yuǎn)程機(jī)器上的方法。對每個(gè)協(xié)議,系統(tǒng)自動(dòng)處理所有轉(zhuǎn)換與傳輸。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第29頁!JAVA技術(shù)特點(diǎn)
解釋性也許你以為這個(gè)過程會(huì)使速度很慢,但稍后“高性能”一節(jié)將會(huì)介紹,情況并非如此。平臺(tái)中立字節(jié)碼實(shí)際上還包含其他信息,可以在運(yùn)行時(shí)根據(jù)編譯時(shí)無法進(jìn)行的決策進(jìn)行執(zhí)行優(yōu)化。深圳市計(jì)算機(jī)行業(yè)協(xié)會(huì)共35頁,您現(xiàn)在瀏覽的是第30頁!JAVA技術(shù)特點(diǎn)
健壯性2,Java沒有指針,不能引用內(nèi)存指針,搞亂內(nèi)存或越過數(shù)組邊界。Java用引用而不用指針,不能通過刪除引用直接操縱內(nèi)存空間。3,Java進(jìn)行自動(dòng)內(nèi)存回收,編程人員無法意外忘記釋放內(nèi)存,不需要判斷何處需要釋放內(nèi)存。4,Jav
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 62841-4-4:2020/AMD1:2024 EN-FR Amendment 1 - Electric motor-operated hand-held tools,transportable tools and lawn and garden machinery - Safety - Part 4-4: Particular r
- 【正版授權(quán)】 IEC 61340-4-9:2024 CMV EN Electrostatics - Part 4-9: Standard test methods for specific applications - Garments - Resistive characterization
- 2024年外貿(mào)業(yè)務(wù)員月工作計(jì)劃范例(七篇)
- 2024年土石方工程合同簡單版(三篇)
- 2024年大學(xué)生實(shí)習(xí)工作總結(jié)范例(二篇)
- 2024年小學(xué)教師個(gè)人教學(xué)工作計(jì)劃樣本(三篇)
- 2024年工程借款合同標(biāo)準(zhǔn)樣本(二篇)
- 2024年小學(xué)四年級下學(xué)期少先隊(duì)工作計(jì)劃范文(二篇)
- 2024年學(xué)校環(huán)境衛(wèi)生工作計(jì)劃(二篇)
- 2024年學(xué)校體育工作總結(jié)范本(二篇)
- 科學(xué)教學(xué)設(shè)計(jì)《食物鏈》
- 力樸素抗癌藥理藥效及其合成
- 球磨機(jī)設(shè)計(jì)說明書
- CRRT的原理PPT參考課件
- 餐飲美學(xué)餐飲空間格局設(shè)計(jì)
- 有效初三英語課堂教學(xué)ppt課件
- 幸福在哪里作文800字高中范文
- 五人制足球比賽記錄表.doc
- 整式的乘法與因式分解所有知識(shí)點(diǎn)總結(jié)
- 《運(yùn)動(dòng)生理學(xué)》教案
- 陳春花管理學(xué)著作精華解讀之《管理的常識(shí)》
評論
0/150
提交評論