Java是甚麼?

2007-03-19 2:43 am
Java是甚麼?
有咩用?

回答 (2)

2007-03-19 2:46 am
✔ 最佳答案
Java,是一種可以編寫跨平臺應用軟體的物件導向的程式語言,由昇陽(太陽微電子,Sun Microsystems)公司的詹姆斯·高斯林(James Gosling)等人於1990年代初開發。它最初被命名為Oak,作為一種小家用電器的程式設計語言,用於解決諸如電視機、電話、鬧鐘、烤麵包機等家用電器的控制和通訊問題。由於這些智慧型家電的市場需求沒有預期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著Internet的發展,Sun看到了Oak在電腦網路上的廣闊應用前景,於是改造了Oak,在1995年5月以「Java」的名稱正式發佈了。Java伴隨著Internet的迅猛發展而發展,逐漸成為重要的Internet程式語言。

Java程式語言的風格十分接近C++語言。Java繼承了C++語言物件導向技術的核心,捨棄了C++語言中容易引起錯誤的指標(以參照取代)、運算符重載、多重繼承(以介面取代)等成分,增加了自動垃圾回收器功能用於回收不再被參照的對象所佔據的記憶體空間。在J2SE1.5版本中Java又引入了泛型程式設計(Generic Programming)、類型安全的枚舉、不定長參數和自動裝/拆箱等語言特性。

Java不同於一般的編輯執行計算機語言和解釋執行電腦語言。它首先將原始碼編譯成位元組碼,然後依賴各種不同平臺上的虛擬機來解釋執行位元組碼,從而實現了「一次編譯、到處執行」的跨平臺特性。不過,這同時也在一定程度上降低了Java程序的運行效率。但在J2SE1.4.2發佈後,Java的計算能力有了大幅提升。

與傳統程序不同,Sun公司在推出Java之際就將其作為一種開放的技術。全球數以萬計的Java開發公司被要求所設計的Java軟體必須相互相容。「Java語言靠群體的力量而非公司的力量」是Sun公司的口號之一,並獲得了廣大軟體開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同。

Sun公司對Java程式語言的解釋是:Java程式語言是個簡單、物件導向、分散式、解釋性、健壯、安全與系統無關、可移植、高性能、多執行緒和動態的語言。

Java平臺是基於Java語言的平臺。這樣的平臺目前非常流行,因此微軟公司推出了與之競爭的.NET平臺以及模仿Java的C#語言。



語言特性
Java之所以被開發,是要達到以下五個目的:

應當使用物件導向程序設計方法學
應當允許同一程序在不同的電腦平臺執行
應當包括內建的對電腦網路的支持
應當被設計成安全地執行遠端代碼
應當易於使用,並借鑒以前那些物件導向語言(如C++)的長處。
Java技術主要分成幾個部分:Java語言、運行環境JVM、類庫。一般情況下說Java時並不區分指的是哪個部分。


[編輯] 物件導向
Java的特點之一就是物件導向,是程序設計方法的一種。「物件導向程式語言」的核心之一就是開發者在設計軟體的時候可以使用自定義的類型和關聯操作。代碼和數據的實際集合體叫做「對象」。一個對象可以想象成綁定了很多「行為(代碼)」和「狀態(數據)」的物體。對於資料結構的改變需要和代碼進行通信然後操作,反之亦然。物件導向設計讓大型軟體工程的計劃和設計變得更容易管理,能增強工程的健康度,減少失敗工程的數量。

物件導向設計另外一個目標就是能產生很多的有關聯的類,可以讓軟體的再開發變得簡單。舉例來說,很多軟體工程都有同樣的功能,尤其是很多應用了同一原理組織的軟體工程。軟體的二次開發者想自己為軟體開發外掛程式以增強功能的時候,絕對不想看到混亂的開發代碼和管理計劃。物件導向的目的就是不生產難懂且難以使用的代碼,為軟體各個功能群之間建立有效的通信通道。很多開源軟體社區正在計劃給軟體作者提供更多的類來讓軟體的二次開發變得簡便。


[編輯] 平臺無關性

一個Java軟體的界面,在所有系統下面都可以運行這個程序Java語言的第二個特性就是平臺無關性,也就是說使用Java語言編寫的程序可以在編譯後不用經過任何更改,就能在任何硬體設備條件下運行。這個特性經常被稱為「一次編譯,到處運行」。

實現平臺無關性的方法是大多數編譯器在進行Java語言程序的編碼時候會生成一個用位元組碼寫成的「半成品」,這個「半成品」會在Java虛擬機(解釋層)的幫助下運行,虛擬機會把它轉換成當前所處硬體平臺的原始代碼。之後,Java虛擬機會打開標準庫,進行數據(圖片、執行緒和網路)的存取工作。主要注意的是,儘管已經存在一個進行代碼翻譯的解釋層,有些時候Java的位元組碼代碼還是會被JIT編譯器進行二次編譯。

有些編譯器,比如GCJ,可以自動生成原始代碼而不需要解釋層。但是這些編譯器所生成的代碼只能應用於特定平臺。並且GCJ目前只支持部分的Java API。

昇陽對於Java的許可是「全相容的」,這也導致了微軟和昇陽關於微軟的程序不支持RMI和JNI介面、並且增加特性為己所用的法律爭端。昇陽最終贏得了官司,獲得了大約兩千萬美元的賠償,法院強制要求微軟執行昇陽公司關於Java的許可要求。作為回應,微軟不再在Windows系統中捆綁Java,最新的Windows版本,Windows Vista和Internet Explorer 7.0版本也不再提供對於Java應用程序和控制項的支持。但是昇陽公司和其他使用Java運行時系統的公司對於微軟的操作對用戶提供無償的第三方外掛程式和程序支持。

Java語言使用解釋層最初是為了輕巧性。所以這些程序的運行效率比C語言和C++要低很多,用戶也對此頗有微詞。很多最近的調查顯示Java的程序運行速度比幾年前要高出許多,有些同樣功能的程序的效率甚至超過了C++和C語言編寫的程序。

Java語言在最開始應用的時候是沒有解釋層的,所有需要編譯的代碼都直接轉換成機器的原始代碼。這樣做的後果就是獲得了最佳的性能,但是程序臃腫異常。從JIT技術開始,Java的程序都經過一次轉換之後才變成機器碼。很多老牌的第三方虛擬機都使用一種叫做「動態編譯」的技術,也就是說虛擬機實時監測和分析程序的運行行為,同時選擇性地對程序所需要的部分進行編譯和優化。所有這些技術都改善了代碼的運行速度,但是又不會讓程序的體積變得失常。

程序的輕便性事實上是軟體編寫很難達到的一個目標,Java雖然成功地實現了「一次編譯,到處運行」,但是由於平臺和平臺之間的差異,所編寫的程序在轉換代碼的時候難免會出現微小的、不可察覺的錯誤和意外。有些程式設計師對此非常頭疼,他們嘲笑Java的程序不是「一次編譯,到處運行」,而是「一次編譯,到處調試」。

平臺無關性讓Java在伺服器端軟體領域非常成功。很多伺服器端軟體都使用Java或相關技術建立。
2014-05-11 1:05 pm
我一直都有過敏狀況,是最近才知道要用防螨寢具的,因為醫師建議我用,我也考慮了很久,想說要買就買最好的,上個月趁網站有折扣的時候買了一組【北之特】防蹣(螨)寢具來用用看,真沒想到~~現在覺得過敏狀況有改善多了。雖然比一般的貴一些,不過~真值得!


收錄日期: 2021-04-15 23:50:08
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070318000051KK04149

檢視 Wayback Machine 備份