Java語言最早被稱為Oak,它是為了實現(xiàn)嵌入式的消費類電子產(chǎn)品應(yīng)用而產(chǎn)生的,它的作者是James Gosling。Ed Frank, Patrick Naughton, Jonathan Payne, Chris Warth在隨后的幾年時間中為Java語言加入了大量的特性,并把Java語言的目標做了一個重新的定位,定位于適合Internet的語言。
在中型的J2SE(Java 2 Standard Edition)方面,Sun推出一個新的解決方案,稱為Java Web Start。原先的Java Applet是在WebBrowser 中間開出一塊方形區(qū)域來執(zhí)行Java程序,但是這樣在執(zhí)行效能和兼容性上都受限于原有的 Web Browser。現(xiàn)在新推出的Java Web Start則是在操作系統(tǒng)上直接執(zhí)行的Java application,但是可以在網(wǎng)頁上激活。如此一來既可和網(wǎng)頁結(jié)合,在執(zhí)行上也更快、更有效率。并且,Sun和IBM都將推出支持64位運算的Java版本,這對一般計算機上執(zhí)行的客戶端Java應(yīng)用系統(tǒng)的開發(fā)將會是一大利器。
除了以上這三大Java組合之外,Java和xml的整合也是未來的重點。Sun公司已經(jīng)推出Java處理XML的標準延伸API - Java API for XML Parsing (JAXP),可以讓各家所制作的XML解析器有接口上的標準。所以在Java程序中,只要了解一套API(JAXP)就可以完全處理XML文件,讓XML的應(yīng)用更加方便。Java這個跨平臺的開發(fā)環(huán)境,加上XML這個跨平臺的資料格式,此種跨平臺優(yōu)勢組合勢將成為未來訊息傳遞及資料交換的主要應(yīng)用技術(shù),如虎添翼地結(jié)合成一個最佳的跨平臺解決方案。
隨著應(yīng)用領(lǐng)域的不同,Java 有許多 API(Application Programming Interface),這些 API 分成三大類:
? Java Core API:由 Sun 制定的基本 API,任何 Java 平臺都必須提供。
? Java Standard Extension API (javax):由 Sun 制定的擴充 API,Java 平臺可以選擇性地提供或加裝。
? 廠商或組織所提供的 API:由各家公司或組織所提供。
其中 Core API 和 Standard Extension API 已經(jīng)逐漸涵蓋了大部份的信息應(yīng)用領(lǐng)域,例如多媒體、數(shù)據(jù)庫、Web、企業(yè)運算、語音、實時系統(tǒng)、網(wǎng)絡(luò)、電話、影像處理、加解密、GUI、分布式運算 ......。如果你有某項需求尚未有標準的 Java API 可遵循,你可以向 Sun 提出制定新 API 的請求。經(jīng)過審核之后,你的要求可能會通過、駁回 ...... 等。如果通過,就會開始進入制定 API 的程序。Java API 的制定過程因為公開,且經(jīng)過許多業(yè)界技術(shù)領(lǐng)先公司的共同參與,所以相當(dāng)完善而優(yōu)異。
Java RMI-IIOP(Java Remote Method Invocation over the Internet Inter-ORB Protocol)是J2EE的網(wǎng)絡(luò)機制。Java RMI-IIOP允許你編寫分布式對象,使得對象的通信范圍能夠在內(nèi)存中,跨Java虛擬機,跨物理設(shè)備。
public interface BankAccount extends java.rmi.Remote { public void deposit(float amount) throws java.rmi.RemoteException; public void withdraw(float amount) throws OverdrawnException, java.rmi.RemoteException; public float getBalance() throws java.rmi.RemoteException; }
下例說明了有效的遠程接口 Beta。它擴展非遠程接口 Alpha(有遠程方法)和接口 java.rmi.Remote: public interface Alpha { public final String okay = "constants are okay too"; public Object foo(Object obj) throws java.rmi.RemoteException; public void bar() throws java.io.IOException; public int baz() throws java.lang.Exception; }
public interface Beta extends Alpha, java.rmi.Remote { public void ping() throws java.rmi.RemoteException; }
或許你已經(jīng)對微軟的Active Server Pages (asps)非常熟悉;JSP也是類似的技術(shù),不過它是平臺無關(guān)的。它們都是設(shè)計來幫助web內(nèi)容開發(fā)者使用相對較少的代碼就可以創(chuàng)建動態(tài)的網(wǎng)頁。web設(shè)計者即使不懂得編程,也可以使用JSP來創(chuàng)建動態(tài)的網(wǎng)頁。JavaServer Page是Html代碼和Java代碼的混合。在客戶請求頁面的時候,服務(wù)器就會處理Java代碼,然后返回HTML頁面給瀏覽器。