理解
對JavE的的理解如下:它一個工具,一個用純java語言寫的跨平台的,一個通用的Ascii碼圖形化的文本編輯器。其功能和微軟的記事本有些類似,主要是一個字處理工具,但提供圖形化輸入;操作像是微軟的畫圖軟件,因為該軟件主要是通過鼠标進行文本的編輯。進一步看了一下該軟件的功能,操作和功能并不複雜。該軟件主要的賣點是授權開發源代碼方式,其用百分之百java語言開發的跨平台特點。
曆史
1991年,SUNMicroSystem公司的JameGosling、BillJoe等人,為在電視、控制烤面包箱等家用消費類電子産品上進行交互式操作而開發了一個名為Oak的軟件(即一種橡樹的名字),但當時并沒有引起人們的注意,直到1994年下半年,Internet的迅猛發展,環球信息網WWW的快速增長,促進了Java語言研制的進展,使得它逐漸成為Internet上受歡迎的開發與編程語言,一些著名的計算機公司紛紛購買了Java語言的使用權,如IBM、Oracle、Netscape、Novell、Apple等。
因此,Java語言被美國的著名雜志PCMagazine評為1995年十大優秀科技産品,(計算機類就此一項入選),随之大量出現了用Java編寫的軟件産品,受到工業界的重視與好評,認為"Java是八十年代以來計算機界的一件大事",微軟總裁比爾·蓋茨在悄悄地觀察了一段時間後,不無感慨地說:"Java是長時間以來最卓越的程序設計語言",并确定微軟整個軟件開發的戰略從PC單機時代向着以網絡為中心的計算時代轉移,而購買Java則是他的重大戰略決策的實施部署。
因此,Java的誕生必将對整個計算機産業發生深遠的影響,對傳統的計算模型提出了新的挑戰。
前景
Jave強大的安全性使得其在網絡編程中被廣泛采用,特别是其出色的多線程機制。利用Jave的多線程編程接口,開發人員可以方便地寫出支持多線程的應用程序,有效地減少并發并行程序設計的困難,提高了程序執行效率。
Java語言有着廣泛的應用前景,大體上可以從以下幾個方面來考慮其應用:
1.所有面向對象的應用開發,包括面向對象的事件描述、處理、綜合等;
2.計算過程的可視化、可操作化的軟件的開發;
3.動态畫面的設計,包括圖形圖像的調用;
4.交互操作的設計(選擇交互、定向交互、控制流程等);
5.Internet的系統管理功能模塊的設計,包括Web頁面的動态設計、管理和交互操作設計等;
6.Intranet(企業内部網)上的軟件開發(直接面向企業内部用戶的軟件);
7.與各類數據庫連接查詢的SQL語句實現;
8.進行手機通訊和其他的一些嵌入式的開發(比如手機和網絡遊戲)
9.其它應用類型的程序。
特點
Java是一個廣泛使用的網絡編程語言,它是一種新的計算概念。首先,作為一種程序設計語言,它簡單、面向對象、不依賴于機器的結構、具有可移植性、魯棒性、安全性、并且提供了并發的機制、具有很高的性能。其次,它最大限度地利用了網絡,Java的小應用程序(applet)可在網絡上傳輸而不受CPU和環境的限制。另外,Java還提供了豐富的類庫,使程序設計者可以很方便地建立自己的系統。
下面分别從這三個方面來讨論Java的特點,然後通過把Java與C,C++相比進一步指出它所具有的優點。Java語言有下面一些特點:簡單、面向對象、分布式、解釋執行、魯棒、安全、體系結構中立、可移植、高性能、多線程以及動态性。
簡單性
Java語言是一種面向對象的語言,它通過提供最基本的方法來完成指定的任務,隻需理解一些基本的概念,就可以用它編寫出适合于各種情況的應用程序。Java略去了運算符重載、多重繼承等模糊的概念,并且通過實現自動垃圾收集大大簡化了程序設計者的内存管理工作。另外,Java也适合于在小型機上運行,它的基本解釋器及類的支持隻有40KB左右,加上标準類庫和線程的支持也隻有215KB左右。庫和線程的支持也隻有215KB左右。
面向對象
Java語言的設計集中于對象及其接口,它提供了簡單的類機制以及動态的接口模型。對象中封裝了它的狀态變量以及相應的方法,實現了模塊化和信息隐藏;而類則提供了一類對象的原型,并且通過繼承機制,子類可以使用父類所提供的方法,實現了代碼的複用。
分布性
Java是面向網絡的語言。通過它提供的類庫可以處理TCP/IP協議,用戶可以通過URL地址在網絡上很方便地訪問其它對象。
魯棒性
Java在編譯和運行程序時,都要對可能出現的問題進行檢查,以消除錯誤的産生。它提供自動垃圾收集來進行内存管理,防止程序員在管理内存時容易産生的錯誤。通過集成的面向對象的例外處理機制,在編譯時,Java提示出可能出現但未被處理的例外,幫助程序員正确地進行選擇以防止系統的崩潰。另外,Java在編譯時還可捕獲類型聲明中的許多常見錯誤,防止動态運行時不匹配問題的出現。
安全性
用于網絡、分布環境下的Java必須要防止病毒的入侵。Java不支持指針,一切對内存的訪問都必須通過對象的實例變量來實現,這樣就防止程序員使用"特洛伊"木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易産生的錯誤。
體系結構中立
Java解釋器生成與體系結構無關的字節碼指令,隻要安裝了Java運行時系統,Java程序就可在任意的處理器上運行。這些字節碼指令對應于Java虛拟機中的表示,Java解釋器得到字節碼後,對它進行轉換,使之能夠在不同的平台運行。
可移植性
與平台無關的特性使Java程序可以方便地被移植到網絡上的不同機器。同時,Java的類庫中也實現了與不同平台的接口,使這些類庫可以移植。另外,Java編譯器是由Java語言實現的,Java運行時系統由标準C實現,這使得Java系統本身也具有可移植性。
解釋執行
Java解釋器直接對Java字節碼進行解釋執行。字節碼本身攜帶了許多編譯時信息,使得連接過程更加簡單。
高性能
和其它解釋執行的語言如BASIC、TCL不同,Java字節碼的設計使之能很容易地直接轉換成對應于特定CPU的機器碼,從而得到較高的性能。
多線程
多線程機制使應用程序能夠并行執行,而且同步機制保證了對共享數據的正确操作。通過使用多線程,程序設計者可以分别用不同的線程完成特定的行為,而不需要采用全局的事件循環機制,這樣就很容易地實現網絡上的實時交互行為。
動态性
Java的設計使它适合于一個不斷發展的環境。在類庫中可以自由地加入新的方法和實例變量而不會影響用戶程序的執行。并且Java通過接口來支持多重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。
架構
與J2SE和J2EE相比,J2ME總體的的運行環境和目标更加多樣化,但其中每一種産品的用途卻更為單一,而且資源限制也更加嚴格。為了在達到标準化和兼容性的同時盡量滿足不同方面的需求,J2ME的架構分為Configuration、Profile和OptionalPackages(可選包)。它們的組合取舍形成了具體的運行環境。
Configuration主要是對設備縱向的分類,分類依據包括存儲和處理能力,其中定義了虛拟機特性和基本的類庫。已經标準化的Configuration有-ConnectedLimitedDeviceConfiguration(CLDC)和ConnectedDeviceConfiguration(CDC)。
Profile建立在Configuration基礎之上,一起構成了完整的運行環境。它對設備橫向分類,針對特定領域細分市場,内容主要包括特定用途的類庫和API。CLDC上已經标準化的Profile有MobileInformationDeviceProfile(MIDP)和InformationModuleProfile(IMP),而CDC上标準化的Profile有FoundationProfile(FP)、PersonalBasisProfile(PBP)和PersonalProfile(PP)。可選包獨立于前面兩者提供附加的、模塊化的和更為多樣化的功能。目前标準化的可選包包括數據庫訪問、多媒體、藍牙等等。



















