JavaScript與Java的區別

因爲名字的關係,總是有人誤以爲Javascript是Java的一個子集,或者必然會存在一些關係。但非常讓大家失望,這兩種編程語言除了名字開頭相同之外,沒有其它內在的關係!

JavaScript與Java的區別
  什麼是Javascript?

我在上一篇Javascript簡介中已經介紹了什麼是Javascript,它是運行在瀏覽器中的一種腳本語言,在web頁面中,Javascript可謂是無所不能:

可以操作HTML,提供了一種運行時改變HTML的工具

可以附加並執行事件,符合面向事件編程的思想

數據驗證功能,在提交表單時對錶單數據進行合法性驗證

對客戶瀏覽器的操作,前進、後退、刷新、跳轉、打開新窗口、打印等

可以創建並使用Cookies

  什麼是Java呢?

Java是Sun公司推出的一種編程語言。它是一種通過解釋方式來執行的語言,語法規則和C++類似。同時,Java也是一種跨平臺的程序設計語言。用Java語言編寫的程序叫做“Applet”(小應用程序),用編譯器將它編譯成類文件後,將它存在WWW頁面中,並在HTML檔上作好相應標記,用戶端只要裝上Java的客戶軟件就可以在網上直接運行“Applet”。

Java非常適合於企業網絡和Internet環境,現在已成爲Internet中最受歡迎、最有影響的編程語言之一。 Java有許多值得稱道的優點,如簡單、面向對象、分佈式、解釋性、可靠、安全、結構中立性、可移植性、高性能、多線程、動態性等。Java擯棄了C++中各種弊大於利的功能和許多很少用到的功能。 Jave可以運行與任何微處理器,用Java開發的程序可以在網絡上傳輸,並運行於任何客戶機上。

  Javascript名字的由來

JavaScript最早是被稱爲Mocha(魔卡)的,這是這個項目的代碼名。這個名字一直用到Netscape2.0 beta 2發佈之前(95.11.04)——包括在beta 1中彈出的錯誤框上,還可以看到Mocha的名字。不過,早在此前的9月18號,netscape就已經發布消息將在LiveWire中啓用一種服務器端腳本(未提及名稱)。又因爲我們前面提到的“前後端通用腳本”的設計,該語言在beta 2發佈時就使用了內部名稱LiveScript。

但同樣混亂的事情是,事實上這時Netscape已經決定將該語言命名爲“JavaScript”。因此在beta 2的發佈備忘中該語言稱爲JavaScript,而界面上卻從Mocha改爲了LiveScript。這一局面一直持續到12月4日,netscape與sun共同發佈聲明,正式啓用了JavaScript這個名字。隨後beta 4發佈(95.12.20),界面和文檔上就統一了。

所以事實上“LiveScript”這個名字可以考證的生命週期,也就只有一個月的時間(在95.11.04- 12.04)。但Mocha畢竟只是項目代碼名,而非產品名,所以後來人們追溯JavaScript的歷史,大多隻提到LiveScript爲止。

  Javascript和Java的區別

一、javascript與Java是由不同的公司開發的不同產品。javascript是Netscape公司的產品,其目的是爲了擴展Netscape Navigator功能,而開發的一種可以嵌入Web頁面中的基於對象和事件驅動的解釋性語言;而Java是SUN Microsystems公司推出的新一代面向對象的程序設計語言,特別適合於Internet應用程序開發。實際上,javascript最初的名字並不是javascript,而是LiveScript,名字中的“Java”是經過SUN Microsystems公司授權的。

二、javascript是基於對象的,它是一種腳本語言,是一種基於對象和事件驅動的編程語言,因而它本身提供了非常豐富的內部對象供設計人員使用。而Java是面向對象的,即Java是一種真正的面向對象的語言,即使是開發簡單的.程序也必須設計對象。

三、javascript與Java嵌入方式不一樣。在HTML文檔中,兩種編程語言的標識不同,javascript使用來標識,而Java使用Applet來標識。

四、javascript與Java在瀏覽器中所執行的方式不一樣。javascript是一種解釋性編程語言,其源代碼在發往客戶端執行之前不需經過編譯,而是將文本格式的字符代碼發送給客戶,即javascript語句本身隨Web頁面一起下載下來,由瀏覽器解釋執行。而Java的源代碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上必須具有相應平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實現獨立於某個特定的平臺編譯代碼。

五、javascript與Java代碼格式不一樣。javascript的代碼是一種謀咀址格式,可以直接嵌入HTML文檔中,並且可動態裝載,編寫HTML文檔就像編輯文本文件一樣方便,其獨立文件的格式爲*。Java是一種與HTML無關的格式,必須通過像HTML中引用外媒體那麼進行裝載,其代碼以字節代碼的形式保存在獨立的文檔中,其獨立文件的格式爲*s。

六、javascript與Java所採取的變量是不一樣的。javascript中的變量聲明採用弱類型,即變量在使用前不需作聲明,而是解釋器在運行時檢查其數據類型。Java採用強類型變量檢查,即所有變量在編譯之前必須作聲明。

七、javascript採用動態聯編,即javascript的對象引用在運行時進行檢查。Java採用靜態聯編,即Java的對象引用必須在編譯時的進行,以使編譯器能夠實現強類型檢查。

八、javascript不直接對文本和圖形進行操作,它在Web頁面中與HTML元素組合一起發揮作用,但它可以控制瀏覽器,讓瀏覽器直接對文本和圖形進行處理。而Java則可以直接對文本和圖形進行操作。