JavaScript與Java的區別

來源:互聯網
上載者:User

標籤:

關於java和javascript的關係,我曾在一個論壇上看過這樣一句話,java和javascript的關係,就好比雷鋒和雷峰塔的關係,實在是經典!

因為名字的關係,總是有人誤以為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使用<script></script>來標識,而Java使用Applet來標識。   

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

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

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

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

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

JavaScript與Java的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.