JavaScript和Java的區別(轉)
談到JavaScript人們往往會想起Java了,雖然JavaScript與Java有緊密的聯絡,Java 是一種比 JavaScript 更復雜 許多的程式語言,而 JavaScript 則是相當容易瞭解的語言。JavaScript 創作者可以不那麼注重程式技巧,所以許多 Java 的特性在 Java Script 中並不支援,同時兩者卻是兩個公司開發的不同的兩個產品。Java是SUN公司推出的新一代物件導向的程式設計語言,特別適合於Internet應用程式開發;而JavaScript是Netscape公司的產品,其目的是為了擴充套件Netscape Navigator功能,而開發的一種可以嵌入Web頁面中的基於物件和事件驅動的解釋性語言, 它的前身是Live Script;而Java的前身是Oak語言。下面對兩種語言間的異同作如下比較:
1、基於物件和麵向物件
Java是一種真正的物件導向的語言,即使是開發簡單的程式,必須設計對。JavaScript是種指令碼語言,它可以用來製作與網路無關的,與使用者互動作用的複雜軟體。它是一種基於物件(Object Based)和事件驅動(Event Driver)的程式語言。因而它本身提供了非常豐富的內部物件供設計人員使用。
2、解釋和編譯
兩種語言在其瀏覽器中所執行的方式不一樣。Java的原始碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上必須具有相應平臺上的模擬器或直譯器,它可以透過編譯器或直譯器實現獨立於某個特定的平臺編譯程式碼的束縛。JavaScript是一種解釋性程式語言,其原始碼在發往客戶端執行之前不需經過編譯,而是將文字格式的字元程式碼傳送給客戶編由瀏覽器解釋執行。
3、強變數和弱變數
兩種語言所採取的變數是不一樣的。Java採用強型別變數檢查,即所有變數在編譯之前必須作宣告。如: Integer x; String y; x=1234; x=4321;
其中X=1234說明是一個整數,Y=4321說明是一個字串。JavaScript中變數宣告,採用其弱型別。即變數在使用前不需宣告,而是直譯器在執行時檢查其資料型別,如:
x=1234;
y="4321"; 前者說明x為其數值型變數,而後者說明y為字元型變數。
4、程式碼格式不一樣
Java是一種與HTML無關的格式,必須透過像HTML中引用外媒體那麼進行裝載,其程式碼以位元組程式碼的形式儲存在獨立的文件中。
JavaScript的程式碼是一種文字字元格式,可以直接嵌入HTML文件中,並且可動態裝載。編寫HTML文件就像編輯文字檔案一樣方便。
5、嵌入方式不一樣
在HTML文件中,兩種程式語言的標識不同,JavaScript使用
6、靜態聯編和動態聯編
Java採用靜態聯編,即Java的物件引用必須在編譯時的進行,以使編譯器能夠實現強型別檢查。
JavaScript採用動態聯編,即JavaScript的物件引用在執行時進行檢查,如不經編譯則就無法 實現物件引用的檢查。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950430/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java和Javascript的區別JavaScript
- 將普通的數字轉為color值,java和javascript的區別JavaScript
- JavaScript中for in 和for of的區別JavaScript
- JavaScript中==和===的區別JavaScript
- java中list、set和map 的區別(轉)Java
- Java入門:Hashtable和HashMap的區別(轉)JavaHashMap
- 【Java】equals 和 == 的區別Java
- java和html的區別JavaHTML
- javascript push 和 concat 的區別JavaScript
- javascript陣列和物件的區別JavaScript陣列物件
- java 中equals和==的區別Java
- java yield()和sleep()的區別Java
- ArrayList 和 Vector 的區別 -JAVAJava
- Java中equals和==的區別Java
- java堆和棧的區別Java
- java bean 與 ejb的區別 (轉)JavaBean
- JavaScript中Map和ForEach的區別JavaScript
- java和JavaScript究竟什麼關係,有什麼樣的區別JavaScript
- 【轉】mysql 和 redis的區別MySqlRedis
- HttpRequest 和HttpWebRequest的區別(轉)HTTPWeb
- 轉:SAN和NAS的區別
- Latch和Lock的區別(轉)
- editchanged 和 itemchanged 的區別(轉)
- java中的==和equal的區別Java
- JavaScript方法和函式區別JavaScript函式
- JavaScript之childNodes 和 children 區別JavaScript
- 轉發和重定向的區別(轉)
- javascript中break和continue的區別和作用JavaScript
- XML和HTML的主要區別、 jQuery 能做什麼?JavaScript中的“=、==、===”區別?XMLHTMLjQueryJavaScript
- Java中Vector和ArrayList的區別Java
- Java之for(;;)和while(true)的區別JavaWhile
- 【Java面試】@Resource 和 @Autowired 的區別Java面試
- Java中 equals() 方法和 == 的區別Java
- 對於java中的"\"和"/" 區別Java
- 在java中“equals”和“==”的區別Java
- Java中throw和throws的區別Java
- Java中堆和棧的區別Java
- java中==和equlas區別Java