JavaScript 和 Java 的區(qū)別淺析
雖然JavaScript與Java有緊密的聯(lián)系,但卻是兩個(gè)公司開發(fā)的不同的產(chǎn)品。Java是SUN公司推出的新一代面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,特別適合于Internet應(yīng)用程序開發(fā);而JavaScript是Netscape公司的產(chǎn)品,其目的是為了擴(kuò)展Netscape Navigator功能,而開發(fā)的一種可以嵌入Web頁(yè)面中的基于對(duì)象和事件驅(qū)動(dòng)的解釋性語(yǔ)言, 它的前身是Live Script;而Java的前身是Oak語(yǔ)言。
下面對(duì)兩種語(yǔ)言間的異同作如下比較:
1.基于對(duì)象和面向?qū)ο?/strong>
Java是一種真正的面向?qū)ο蟮恼Z(yǔ)言,即使是開發(fā)簡(jiǎn)單的程序,必須設(shè)計(jì)對(duì)象。JavaScript是種腳本語(yǔ)言,它可以用來(lái)制作與網(wǎng)絡(luò)無(wú)關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對(duì)象(Object Based)和事件驅(qū)動(dòng)(Event Driver)的編程語(yǔ)言。因而它本身提供了非常豐富的內(nèi)部對(duì)象供設(shè)計(jì)人員使用。
2.解釋和編譯
兩種語(yǔ)言在其瀏覽器中所執(zhí)行的方式不一樣。Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過(guò)編譯,因而客戶端上必須具有相應(yīng)平臺(tái)上的仿真器或解釋器,它可以通過(guò)編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺(tái)編譯代碼的束縛。
JavaScript是一種解釋性編程語(yǔ)言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給客戶編由瀏覽器解釋執(zhí)行。
3.強(qiáng)變量和弱變量
兩種語(yǔ)言所采取的變量是不一樣的。Java采用強(qiáng)類型變量檢查,即所有變量在編譯之前必須作聲明。如:
Integer x;
String y;
x=1234;
x=4321;
其中X=1234說(shuō)明是一個(gè)整數(shù),Y=4321說(shuō)明是一個(gè)字符串。JavaScript中變量聲明,采用其弱類型。即變量在使用前不需作聲明,而是解釋器在運(yùn)行時(shí)檢查其數(shù)據(jù)類型,如:
x=1234;
y="4321";
前者說(shuō)明x為其數(shù)值型變量,而后者說(shuō)明y為字符型變量。
4.代碼格式不一樣
Java是一種與HTML無(wú)關(guān)的格式,必須通過(guò)像HTML中引用外媒體那么進(jìn)行裝載,其代碼以字節(jié)代碼的形式保存在獨(dú)立的文檔中。JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動(dòng)態(tài)裝載。編寫HTML文檔就像編輯文本文件一樣方便。
5.嵌入方式不一樣
在HTML文檔中,兩種編程語(yǔ)言的標(biāo)識(shí)不同,JavaScript使用來(lái)標(biāo)識(shí),而Java使用來(lái)標(biāo)識(shí)。
6.靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編
Java采用靜態(tài)聯(lián)編,即Java的對(duì)象引用必須在編譯時(shí)的進(jìn)行,以使編譯器能夠?qū)崿F(xiàn)強(qiáng)類型檢查。JavaScript采用動(dòng)態(tài)聯(lián)編,即JavaScript的對(duì)象引用在運(yùn)行時(shí)進(jìn)行檢查,如不經(jīng)編譯則就無(wú)法實(shí)現(xiàn)對(duì)象引用的檢查。
以下是補(bǔ)充
三分鐘讀懂Java與JavaScript的區(qū)別
Java跟JavaScript雖然在名稱上有些許相似,但其實(shí)是兩種完全不同的語(yǔ)言。Java是一種程序設(shè)計(jì)語(yǔ)言,JavaScript是客戶端的腳本語(yǔ)言,把這兩樣?xùn)|西放在一起比較在科學(xué)上其實(shí)并不嚴(yán)謹(jǐn)。但它們唯一相同的地方可能就是名字中都有Java。JavaScript為什么有Java這個(gè)詞呢,是因?yàn)樗锩娼梃b了Java的對(duì)象的概念,所以才有了這個(gè)具有“迷惑性”的名稱。
鑒于有同學(xué)在學(xué)習(xí)的時(shí)候容易混肴,所以筆者還是將其加以區(qū)別:
一、javascript與Java是由不同的公司開發(fā)的不同產(chǎn)品。javascript是Netscape公司的產(chǎn)品,其目的是為了擴(kuò)展Netscape Navigator功能,而開發(fā)的一種可以嵌入Web頁(yè)面中的基于對(duì)象和事件驅(qū)動(dòng)的解釋性語(yǔ)言;而Java是SUN Microsystems公司推出的新一代面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,特別適合于Internet應(yīng)用程序開發(fā)。實(shí)際上,javascript最初的名字并不是javascript,而是LiveScript,名字中的“Java”是經(jīng)過(guò)SUN Microsystems公司授權(quán)的。
二、javascript是基于對(duì)象的,它是一種腳本語(yǔ)言,是一種基于對(duì)象和事件驅(qū)動(dòng)的編程語(yǔ)言,因而它本身提供了非常豐富的內(nèi)部對(duì)象供設(shè)計(jì)人員使用。而Java是面向?qū)ο蟮?,即Java是一種真正的面向?qū)ο蟮恼Z(yǔ)言,即使是開發(fā)簡(jiǎn)單的程序也必須設(shè)計(jì)對(duì)象。
三、javascript與Java嵌入方式不一樣。在HTML文檔中,兩種編程語(yǔ)言的標(biāo)識(shí)不同,javascript使用<script></script>來(lái)標(biāo)識(shí),而Java使用Applet來(lái)標(biāo)識(shí)。
四、javascript與Java在瀏覽器中所執(zhí)行的方式不一樣。javascript是一種解釋性編程語(yǔ)言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給客戶,即javascript語(yǔ)句本身隨Web頁(yè)面一起下載下來(lái),由瀏覽器解釋執(zhí)行。而Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過(guò)編譯,因而客戶端上必須具有相應(yīng)平臺(tái)上的仿真器或解釋器,它可以通過(guò)編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺(tái)編譯代碼。
五、javascript與Java代碼格式不一樣。javascript的代碼是一種謀咀址格式,可以直接嵌入HTML文檔中,并且可動(dòng)態(tài)裝載,編寫HTML文檔就像編輯文本文件一樣方便,其獨(dú)立文件的格式為*.js。Java是一種與HTML無(wú)關(guān)的格式,必須通過(guò)像HTML中引用外媒體那么進(jìn)行裝載,其代碼以字節(jié)代碼的形式保存在獨(dú)立的文檔中,其獨(dú)立文件的格式為*.class。
六、javascript與Java所采取的變量是不一樣的。
javascript中的變量聲明采用弱類型,即變量在使用前不需作聲明,而是解釋器在運(yùn)行時(shí)檢查其數(shù)據(jù)類型。Java采用強(qiáng)類型變量檢查,即所有變量在編譯之前必須作聲明。
七、javascript采用動(dòng)態(tài)聯(lián)編,即javascript的對(duì)象引用在運(yùn)行時(shí)進(jìn)行檢查。Java采用靜態(tài)聯(lián)編,即Java的對(duì)象引用必須在編譯時(shí)的進(jìn)行,以使編譯器能夠?qū)崿F(xiàn)強(qiáng)類型檢查。
八、javascript不直接對(duì)文本和圖形進(jìn)行操作,它在Web頁(yè)面中與HTML元素組合一起發(fā)揮作用,但它可以控制瀏覽器,讓瀏覽器直接對(duì)文本和圖形進(jìn)行處理。而Java則可以直接對(duì)文本和圖形進(jìn)行操作。
到此這篇關(guān)于JavaScript 和 Java 的區(qū)別淺析的文章就介紹到這了,更多相關(guān)JavaScript 和 Java內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript對(duì)HTML DOM使用EventListener進(jìn)行操作
這篇文章主要介紹了JavaScript對(duì)HTML DOM使用EventListener進(jìn)行操作的方法,用于向HTML元素中添加事件,需要的朋友可以參考下2015-10-10
javascript 數(shù)組的定義和數(shù)組的長(zhǎng)度
本文主要介紹javascript 數(shù)組的定義和數(shù)組的長(zhǎng)度,比較簡(jiǎn)單,希望能給大家做一個(gè)參考。2016-06-06
Javascript基礎(chǔ)教程之JavaScript語(yǔ)法
本文是javascript基礎(chǔ)教程的第一篇,給大家?guī)?lái)的是javascript的最基礎(chǔ)的東西--javascript的語(yǔ)法的注意事項(xiàng),希望大家能夠喜歡2015-01-01
Javascript學(xué)習(xí)筆記2 函數(shù)
在Javascript中,function才是Javascript的第一型。當(dāng)我們寫下一段函數(shù)時(shí),其實(shí)不過(guò)是建立了一個(gè)function類型的實(shí)體。2010-01-01
Ruffy javascript 學(xué)習(xí)筆記
Ruffy javascript 學(xué)習(xí)筆記2009-11-11
Javascript & DHTML 實(shí)例編程(教程)(三)初級(jí)實(shí)例篇1—上傳文件控件實(shí)例
Javascript & DHTML 實(shí)例編程(教程)(三)初級(jí)實(shí)例篇1—上傳文件控件實(shí)例...2007-06-06

