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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論