Java到底是編譯型語言還是解釋型語言?
Java編程語言是由Sun微系統(tǒng)公司在20世紀(jì)90年代早期開發(fā)的。盡管Java主要用于基于internet的應(yīng)用程序,但它是一種簡單、高效、通用的語言。Java最初是為運行在多個平臺上的嵌入式網(wǎng)絡(luò)應(yīng)用程序而設(shè)計的。它是一種可移植的、面向?qū)ο蟮慕忉屝哉Z言。
Java是非??梢浦驳?。相同的Java應(yīng)用程序可以在任何計算機(jī)上以相同的方式運行,而不考慮硬件特性或操作系統(tǒng),只要它有Java解釋器。除了可移植性之外,Java的另一個關(guān)鍵優(yōu)勢是它的一組安全特性,這些特性不僅可以保護(hù)運行Java程序的PC不受錯誤代碼引起的問題的影響,還可以保護(hù)運行Java程序的PC不受惡意程序(如病毒)的影響。您可以安全地運行從Internet下載的Java applet,因為Java的安全特性可以防止這些類型的applet訪問PC的硬盤驅(qū)動器或網(wǎng)絡(luò)連接。applet通常是嵌入在HTML頁面中的小型Java程序。
Java既可以被認(rèn)為是編譯型語言,也可以被認(rèn)為是解釋型語言,因為它的源代碼首先被編譯成二進(jìn)制字節(jié)碼。這個字節(jié)碼運行在Java虛擬機(jī)(JVM)上,JVM通常是一個基于軟件的解釋器。使用編譯的字節(jié)碼可以使解釋器(虛擬機(jī))變得更小、更高效(幾乎和CPU運行本機(jī)編譯代碼一樣快)。此外,這個字節(jié)碼為Java提供了可移植性:無論計算機(jī)硬件或軟件配置如何,它都可以在任何正確實現(xiàn)的JVM上運行。大多數(shù)Web瀏覽器(如Microsoft Internet Explorer或Netscape Communicator)包含運行Java小程序的JVM。
與c++(另一種面向?qū)ο蟮恼Z言)相比,Java代碼運行稍慢(因為JVM),但它更可移植,具有更好的安全特性。虛擬機(jī)在不受信任的Java程序和運行該軟件的PC之間提供隔離。Java的語法類似于c++,但是語言有很大的不同。例如,Java不允許程序員實現(xiàn)運算符重載,而c++允許。此外,Java是一種動態(tài)語言,您可以在程序運行時安全地修改它,而c++不允許這樣做。這對于無法承受任何停機(jī)時間的網(wǎng)絡(luò)應(yīng)用程序尤其重要。此外,所有基本Java數(shù)據(jù)類型都是預(yù)定義的,不依賴于平臺,而一些數(shù)據(jù)類型可以隨著C或c++中使用的平臺而改變(例如int類型)。
Java程序比c++程序更具有高度的結(jié)構(gòu)化。Java中的所有函數(shù)(或Java方法)和可執(zhí)行語句必須駐留在類中,而c++允許函數(shù)定義和代碼行存在于類之外(就像C風(fēng)格的程序一樣)。在Java中,全局?jǐn)?shù)據(jù)和方法不能駐留在類之外,而c++允許這樣做。這些限制雖然有時很麻煩,但有助于維護(hù)Java程序的完整性和安全性,并迫使它們完全面向?qū)ο蟆?/span>
Java的另一個關(guān)鍵特性是它是一個開放標(biāo)準(zhǔn),其源代碼是公開的。Sun Microsystems控制著Java語言及其相關(guān)產(chǎn)品,但Sun的自由許可政策促成了互聯(lián)網(wǎng)社區(qū)將Java作為標(biāo)準(zhǔn)。您可以從Sun的Java Web站點免費下載開發(fā)和運行Java小程序和應(yīng)用程序所需的所有工具