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

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論