Java起源於80年代的中末期,當時西方有一種很時髦的產品:Active TV,Java就是Sun公飼喂這種產品開發的一種語言,其目標是在小型嵌入式系統上運行。但是由於動態圖像壓縮標准MPEG卻始終未能出台,因而這個時期的Java也就中途夭折了。到了1990年,Sun公司副總裁James Gosling再次提出Java的設計,其目標是希望仿效C和C++那樣設計出一種更簡單、更有效、更容易使用的跨多種計算機平台(硬件、操作系統等),可移植的通用語言。到了90年代中期,互聯網迅速崛起,短短幾年得到了巨速的發展,成千上萬的計算機,其中有個人的、企業的、政府的,公司加入到了互聯網上,致使互聯網深入到了生活、社會、經濟、政治、軍事的每一個角落,因此急需開發一種跨平台軟件開發工具,這給Java得到了一個極好的發展機遇,1995年Sun公司首次推出Java語言。短短的幾年中Java得到了極大的發展,成立互聯網開發和應用發展的一個重要工具。
二、Java的某些特點
1.通用性:指的是跨平台、跨網絡、跨語種和跨時間。
跨平台:指的是Java與計算機平台(硬件、操作系統)無關。
跨網絡:指的是Java與網絡平台無關,可以穿越多種常用的網絡類型(平台)。它的結構確切地說是B/S模型(浏覽器/服務器模型,亦稱Web模型)。B/S模型是一種三層結構的模型:客戶端/應用服務器(Web服務器)/數據庫服務器。
跨語種:指的是Java的應用軟件不存在語言本地化問題,它本身帶有語言機制。它主要是通過所謂“國際語言管理”(International Language Management)模塊實現的。
跨時間:技術更新和保護投資的方案、產品升級容易,只需編寫一個新的模塊,替換老模塊即可。
2.可移植性:Java的源代碼是可移植的,而且對現有的幾乎所有操作系統無須修改便能運行,還具有多線程同步、與平台無關的用戶接口、內置聯網功能、對象會打印功能、出錯處理、內存管理等功能。CPU可移植性和虛擬操作系統。
3.支持分布式環境:
1) 分布式對象支持:類似於微軟的OLE(對象的鏈接和嵌入??Object Linking and Embedding)。支持面向對象的“繼承”特性。
2) 分布式計算環境支持:通過不斷擴充的Java網絡類庫支持分布式計算環境。Java提供一個URL(統一資源定位器)對象,用以打開並訪問網上對象。其方式幾乎與訪問文件系統幾乎完全相同。Java的客戶機/服務器模式把運算從服務器分散到客戶端。以提高系統執行效率,增加動態可擴充性。
4.Java虛擬機(JVM):這是一種軟CPU,是Java環境最重要的組件,它是仿照一種小巧高效的CPU設計的,Java的編譯器就是把Java的源代碼編譯成VM可執行的偽標代碼,而偽目標代碼轉換成實際的硬件調用。
5.Java本身就是一種虛擬操作系統和圓形用戶界面(GUI),它們也是可移植的。
三、Java與中間件
Java的客戶端,一般都做的很“瘦”,因此必須通過中間件才能與後台數據庫相連接,由中間件來完成主要的處理操作,問題是中間件在什麼平台上運行,是UNIX還是NT?網絡內有不同子網,子網間也有中間件連接(運行在網點上)。因此比較合適的辦法是在Java上建立中間件,來解決跨平台問題。
四、Java的弱點
1. 跨平台速度慢。因為需要處理諸如中間件JVM等以及網絡網關的連接。這是以增加網絡系統開銷來換取跨平台的功能,為提高速度,需要Java的未用總線來支持(至少三線)。
2. 全開放性,造成易於攻擊。
自身一定的抗病毒能力,但最易受ActiveX的攻擊。
3. 以松散耦合構架的應用程序結構,仍然是犧牲網絡系統性能(開銷)來換取應用程序以整體、完整的連續性。
4. 以互聯網為環境的應用程序、總體而言,安全性是值得質疑的。
5. 用Java開發的小程序性能要比大程序性能優秀得多。