Java歷史發展和特點
作為一名合格的程序員,如果不了解一些關於Java語言的起源是有一些不太合適的。下面就介紹一下我所了解的Java起源。
1、Java名字的來源
Java是印度尼西亞爪哇島的英文名稱,因盛產咖啡而聞名。Java語言中的許多庫類名稱,多與咖啡有關,如JavaBeans(咖啡豆)、NetBeans(網絡豆)以及ObjectBeans (對象豆)等等。SUN和JAVA的標識也正是一杯正冒着熱氣的咖啡。任職於太陽微系統的詹姆斯·高斯林等人於1990年代初開發Java語言的雛形,最初被命名為Oak,目標設置在家用電器等小型系統的程序語言,應用在電視機、電話、鬧鍾、烤面包機等家用電器的控制和通信。由於這些智能化家電的市場需求沒有預期的高,Sun公司放棄了該項計划。隨着1990年代互聯網的發展,Sun公司看見Oak在互聯網上應用的前景,於是改造了Oak,於1995年5月以Java的名稱正式發布。Java伴隨着互聯網的迅猛發展而發展,逐漸成為重要的網絡編程語言。
2、如何可以找到所需的Java信息?(How to)
在網路上,您可以連到Sun公司的Java WWW網站,URL是http://java.sun.com/,或是 http://www.javasoft.com/。在那里幾乎可以找到您所需要的所有Java信息,但是語 言多少是一個障礙, 至少對某些人而言;沒關系,目前國內已有很多個網站提供中文 Java信息。在清華和中科院的FTP站點上有不少有關資料。想象以后應會有更多的站點提供相關信息。
3、如何才能看到Java的效果?(How Do I)
首先您需要有含有Java解釋器的瀏覽器(Browser),例如:Netscpae公司的Netscape Navigator 2.0以上或是Sun公司的HotJava瀏覽器,對個人計算機使用者而言,操作 系統需是Windows 95或是Windows NT。
Java是因為撰寫C++語言程序時的困難而研制開的,起先,只是一個消費性電子產品 大計划中的一部份,C++語言是當初被考慮采用的,但從一開始的編譯問題一直到最后的一連串問題迫使得放棄C++語言,而有Java語言的產生。Sun是要Java成為一個簡 單(Simple)、面向對象的(Object Oriented)、 分布式的(Distributed)、解釋的(Interpreted)、健壯的(Robust)、安全的(Secure)、 結構中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多線程的(Multithreaded)、動態的(Dynamic)的程序語言(摘譯自 TheJava Language: A White Paper, 1995)。
在Sun的Java語言白皮書中明白地說明上述Java語言的技巧。若以木工為比喻,一個面 向對象的木工,他(她)最主要的重點是即將要做的木椅子,其次才是所需要的工具; 反之;一個以非面向對象的木工,他(她)所關心的只是工具。最近的即插即用(Plug and Play)亦是面向對象設計的重點。 分布式的(Distributed):Java有一個很周全的程薪錄JAVA介紹 。
4、Java為何有如此這么大的魅力?
人作如此的比喻: Java在全球資訊網(World Wide Web, WWW)地位就如同電子表格(Spreadsheet)與個人計 算機TTP和FTP等TCP/IP通訊協定相配合。Java應用程序(Applications) 能在網路上開啟及連結使用物件,就如同透過URLs連結使用一個本地文件系統(Local File System)。 健壯的(Robust):由Java所編寫出的程序能在多種情況下執行而具有其穩定性。Java與 C/C++最大不同點是Java有一個指針模型(Pointer Model)來排除內存被覆蓋(Overwriting Memory)和毀損數據(Corrupting Data)的可能性。
安全的(Secure):Java是被設計用於網絡及分布式的環境中,安全性自必是一個很重要的考慮。Java擁有數個階層的互鎖(Interlocking)保護措施,能有效地防止病毒的侵入和破壞行為的發生。
結構中立的(Architecture Neutral):一般而言,網絡是由很多不同機型的機器所 組合而成的,CPU和作業系統體系結構均有所不同;因此,如何使一個應用程序可以 在每一種機器上執行,是一個難題。所幸,Java的編譯器產生一種結構中立的目標 文件格式(Object File Format);這使得編譯碼得以在很多種處理器中執行。
可移植的(Portable):原始資料型式的大小是被指定的,例如"float"一直是表示一個32位元IEEE 754浮點運算數字,因絕大多數的CPU都具有此共同特征。程序庫屬於 系統的一部份,它定義了一些可移植的程序接口,Java本身具備有很好的可移植性。
解釋的(Interpreted):Java解釋器能直接地在任何機器上執行Java位元碼(Bytecodes), 因此在進行程序連結時,時間的節省,這對於縮短程序的開發過程,有極大的幫助。
高效能的(High Performance):Java位元碼迅速地能被轉換成機器碼(Machine Code), 從位元碼轉換到機器碼的效能幾乎與C與C++沒有分別。
多線程的(Multi threaded):Java語言具有多線程的功能,這對於交互回應能力及即時執行行為是有幫助的。
動態的(Dynamic):Java比C或C++語言更具有動態性,更能適應時刻在變的環境, Java不會因程序庫的更新,而必須重新編譯程序。
此外,Hank Shiffman (Making Sense of Java)亦針一般對Java的錯誤看法及觀念提出他的說明,特在此摘譯如下:
"Java是一種編寫Web Pages的一種語言,就如同HTML和VRML一樣" 事實上,Java並不像是HTML此一類的描述語言(Description Language),而是一種編程語言(Programming Language)。描述語言標明內容和位置,而編程語言描述一 種產生結果的過程。