JAVA語言學(xué)習(xí)體會.doc_第1頁
JAVA語言學(xué)習(xí)體會.doc_第2頁
JAVA語言學(xué)習(xí)體會.doc_第3頁
JAVA語言學(xué)習(xí)體會.doc_第4頁
JAVA語言學(xué)習(xí)體會.doc_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

JAVA語言學(xué)習(xí)體會JAVA在編程語言家族中,有如此強(qiáng)大的生命力,是因為借助于JAVA語言,形成了一個JAVA產(chǎn)品線,具備了大量的JFC,乃至基于JAVA的架構(gòu),而決不是因為其作為JAVA編程語言本身的特色。JAVA的許多特性是從C繼承來的,這使得JAVA具備了面向?qū)ο蟮奶匦?,由于其利用虛擬機(jī)技術(shù),使其實現(xiàn)了平臺無關(guān)性。因此下面將要論述的兩個主題一是語言本身的特點(diǎn),二是從虛擬機(jī)技術(shù)出發(fā)簡單介紹一下JAVA架構(gòu)。第一個主題從軟件發(fā)展史開始講起??v觀軟件發(fā)展史,我們經(jīng)歷了面向過程-面向?qū)ο?面向組件-面向集成的幾個時代: 這里所說的軟件發(fā)展史,確切地說應(yīng)該指的是應(yīng)用軟件,強(qiáng)調(diào)的是基于業(yè)務(wù),如IBM公司提出的口號是“隨需而變,按需計算”。而非系統(tǒng)軟件。大家可以看一看WINDOWS源代碼泄露后眾多程序員讀后的感想:C語言還是世界上最好的編程語言,也就是說在系統(tǒng)軟件編程領(lǐng)域,C語言的地位和作用是無法取代的。 但是C作為一個面向過程的編程語言,在應(yīng)用軟件的編寫中,可以實現(xiàn)高度耦合、高效率,通常是針對一個具體的應(yīng)用實現(xiàn),因此無法適應(yīng)快速業(yè)務(wù)變化,不適合做大型面向客戶應(yīng)用的開發(fā)。 面向?qū)ο螅篛OP提供了封裝、繼承、多態(tài)和重載等等一系列的特性使應(yīng)用軟件的架構(gòu)可以被重用,開發(fā)人員可以不用關(guān)心其具體實現(xiàn),而是專注于對象能夠提供怎樣的功能,因此提高了軟件重用性,從而使得整個IT的基礎(chǔ)架構(gòu)能夠適應(yīng)需求的快速變化。語言的單一性和源代碼級的共享決定了在跨應(yīng)用系統(tǒng)重用的過程中必定會有各種各樣的困難。 面向組件:這就是剛才提到的COM的概念。二進(jìn)制級別的組件共享進(jìn)一步加速了面向應(yīng)用實現(xiàn)的步伐,繼承了OO的顯著的優(yōu)點(diǎn),使得IT基礎(chǔ)架構(gòu)能夠更加快速適應(yīng)業(yè)務(wù)變化,但是平臺單一性依然阻礙了其復(fù)用程度。 面向集成:這是一個完全面向業(yè)務(wù)的時代,所有的應(yīng)用都是以業(yè)務(wù)應(yīng)用為主題去組織的。在這里提一個觀點(diǎn):任何技術(shù)都是在繼承的基礎(chǔ)上發(fā)展的。C+的底層實現(xiàn)離不開C語言。面向過程時流傳最廣的一句話是“程序=數(shù)據(jù)結(jié)構(gòu)+算法”,但到面向?qū)ο髸r“類=變量+方法”,從技術(shù)角度來看,這里體現(xiàn)的也是一種編程思想的繼承。面向集成的思想的本質(zhì)在于脫離技術(shù)細(xì)節(jié)后,從非技術(shù)的思想去看待軟件發(fā)展的推動,增加其支撐能力。在這里開始講一下JAVA語言的特點(diǎn),沒有比較就沒有鑒別,我想與其它編程語言對比一下,隨便找一本JAVA的書都會看到以下幾條:簡單、面向?qū)ο?、健壯性(?。?、分布性、可移植、解釋?zhí)行、多線程、動態(tài)性、高性能1、簡單;體現(xiàn)在繼承了C語法;摒棄了C中容易引發(fā)程序錯誤的地方,如指針和內(nèi)存管理(別忘了指針操作是C的特色,容易引發(fā)錯誤是因為使用復(fù)雜,但帶來的好處卻是靈活和處理的功能的增強(qiáng)以及作為編程語言的代碼的精煉); 豐富的類庫。2、面向?qū)ο?,不必多說;3、健壯性;檢測程序在編譯和運(yùn)行時的錯誤;自已操縱內(nèi)存(指VM);實現(xiàn)真數(shù)組,檢測數(shù)組越界;關(guān)于簡單和健壯性的討論,是不是與程序員的水平也有關(guān)聯(lián)呢,這也是一個需要討論的問題。當(dāng)然它能結(jié)省了一部分工作量,但這里還存在一個編程語言應(yīng)用領(lǐng)域的問題,即去用它做什么工作,是否合適。在這里我引用C的鼻組stanley B Lippman 的一句話,“JAVA VM也無非就是幾萬行的C代碼而已”。4、分布性、可移植、解釋執(zhí)行;源于其虛擬機(jī)技術(shù)和中間字節(jié)碼的實現(xiàn)。這一點(diǎn)其它許多腳本語言都可以實現(xiàn)。比如PERL,Practical extraction and report language,腳本語言具有解釋執(zhí)行的特性,只要在不同的系統(tǒng),如WINDOW、UNIX都有其解釋器,只要安裝完成后,同樣可以實現(xiàn)跨平臺。5、多線程C和C+同樣能夠?qū)崿F(xiàn),但JAVA聲明了其對多線程技術(shù)的實現(xiàn)更簡單,更安全。這里也同樣存在著編程人員對于技術(shù)細(xì)節(jié)理解和把握的需求程度。因為任何技術(shù)都是一柄雙刃劍,其運(yùn)用的合理性要置于其應(yīng)用的領(lǐng)域中去考察,是否適用。舉例:VC和CB的差別。舉例用PERL實現(xiàn)的MP3改名。6、動態(tài)性和高性能;二者是互相矛盾的。動態(tài)性在于程序動態(tài)裝載運(yùn)行過程中所需的類,這是因為其中間字節(jié)碼由VM解釋執(zhí)行帶來的特性,這也帶來了性能的問題,隨著其解釋器速度的提高,JAVA也只能說其翻譯目標(biāo)代碼的速度與C、C+已很接近。而C+在類中變量或成員函數(shù)變化時,必須全重新編譯。提到虛擬機(jī),它是用一個解釋層屏蔽了硬件細(xì)節(jié)。這里提到了一個層的概念,因此,在這里我想借用J2EE介紹架構(gòu)設(shè)計方面的內(nèi)容。一個層就是相關(guān)功能的一個一致的集合。在一個嚴(yán)格分層的結(jié)構(gòu)中,第N層僅使用第N1層提供的服務(wù)。這種層次結(jié)構(gòu)的思想的實現(xiàn)有很多,如TCPIP五層結(jié)構(gòu)應(yīng)用的就是一個典型的分層思想。舉例大機(jī)客戶端,客戶端實質(zhì)僅僅是一個數(shù)據(jù)錄入和展示界面;二層為CS,在這里引出前置機(jī)的概念;三層結(jié)構(gòu)客戶層、應(yīng)用組件層和數(shù)據(jù)層。DCC系統(tǒng)就是一個典型的分層架構(gòu)。應(yīng)用架構(gòu)體系的目的在于提供一個業(yè)務(wù)的模型與理論基礎(chǔ)以滿足我行整體業(yè)務(wù)的擴(kuò)充與發(fā)展。分層的好處在于提供一個彈性架構(gòu),可根據(jù)實際業(yè)務(wù)的需要或者技術(shù)的發(fā)展快速嵌入組件(Component)以接入方式(Adapter)運(yùn)行業(yè)務(wù)系統(tǒng)。全行統(tǒng)一業(yè)務(wù)DCC主機(jī)SNA-GW前置柜面網(wǎng)點(diǎn)龍卡清算網(wǎng)銀證券重客ATMP中間業(yè)Call分行統(tǒng)一渠道在前置系統(tǒng)中,實際包括兩個子系統(tǒng),一個是前置子系統(tǒng),另一個是特色業(yè)務(wù)子系統(tǒng),在兩個子系統(tǒng)之間,是高速數(shù)據(jù)通道。具體實現(xiàn)上,又包括以下模塊:A. 渠道系統(tǒng)的接入B. 服務(wù)系統(tǒng)的接入C. SNA-GW的接入D. 數(shù)據(jù)整合(拆/打包、序列化、映射)E. 安全控制(加/解密、MAC校驗)F. 交易控制(交易識別、決策、執(zhí)行、交易一致性控制、通訊路由決策)G. 應(yīng)用功能(前置NIF、虛擬柜員分配、簽約本地登記、簽約通知、龍卡金卡決策等)分層也可以說是一個縱向的架構(gòu)。但若提到橫向的概念,是一個什么狀況呢?EAI的概念大家耳熟能詳。由于各套單獨(dú)系統(tǒng)的作大(舉例:如聯(lián)通客服、計費(fèi)、出賬到賬務(wù)等),單純的從業(yè)務(wù)上整合,其實提出一個最佳的方案并不難,但往往由于各種非技術(shù)因素的制約而無法實施。資金、實施周期、過渡期業(yè)務(wù)處理等等?;诖俗鱁AI,出現(xiàn)了WEBSERVICE技術(shù)。(在這里注意提到的是一種技術(shù))。即各系統(tǒng)仍然以其相對獨(dú)立的身份存在,但要把其要與其它系統(tǒng)分享的服務(wù)和數(shù)據(jù)通過WSDL(web service describe language)進(jìn)行描述(其利用了XML技術(shù)),利用UDDI(universal description discovery and integration)。這里其實也是一個松藕合的思想。WEBSERVICE思想發(fā)展的前身是EDI,但其只能實現(xiàn)數(shù)據(jù)而不包括服務(wù)。在異構(gòu)環(huán)境下構(gòu)建分布式系統(tǒng)時遇到了困難的解決方案都有哪些呢?還有一種就是CORBA。CORBA模型提供了一種標(biāo)準(zhǔn)的軟件平臺,分布的對象可以在此平臺上無縫透明地交互。在這種情況下,ORB允許對象公布其接口,此時還允許客戶端程序查找計算機(jī)網(wǎng)絡(luò)上的這些對象,并請求它們提供服務(wù)(MICO就是開源CORBA的實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論