欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

javascript和java的區(qū)別有哪些

馬哥Linux運維 ? 來源:稀土掘金 ? 2023-10-30 11:35 ? 次閱讀

前言

昨天在刷LeetCode時,在對之前的一道簡單題(13.羅馬數(shù)字轉(zhuǎn)整數(shù))進行二刷時,由于之前在學(xué)校學(xué)的是Java,所以之前已經(jīng)用Java做過一遍了,而最近在學(xué)JS,我就嘗試著用JS去做,也很快的做出來了。但當(dāng)我發(fā)現(xiàn)同樣的代碼JS花費的時間為116ms,而Java僅僅花費2ms,這使得我對這兩門語言產(chǎn)生了濃厚的興趣,我嘗試著去網(wǎng)上查找資料,最終寫下這篇文章。

JavaScript(耗時116ms):

3ff23dec-76d3-11ee-939d-92fbcf53809c.jpg

Java(耗時2ms):

4005d262-76d3-11ee-939d-92fbcf53809c.jpg

為什么會有如此大的差別呢?

之所以會有如此大的差別,主要是由于這兩門語言在設(shè)計和執(zhí)行環(huán)境上的差異導(dǎo)致的,主要分為以下因素:

編譯與解釋

Java:編譯型語言,Java代碼首先會被編譯成字節(jié)碼,然后在Java虛擬機(JVM)上運行。Java的這種編譯方式可以進行很多優(yōu)化,從而提高代碼的執(zhí)行速度。

JavaScript:解釋性語言,代碼在運行時,會由瀏覽器的JavaScript解釋器逐行進行解釋,然后再交給V8引擎去執(zhí)行。然而,正是因為這種解釋性質(zhì),會使得JavaScript的執(zhí)行速度通常較慢。

這就相當(dāng)于在JavaScript執(zhí)行代碼時存在一個中間商,將解釋器類比為中間商,最終到客戶手里商品的價格自然就會更高。所以JavaScript耗時會比Java長。

執(zhí)行環(huán)境不同

Java:執(zhí)行環(huán)境為Java虛擬機(JVM),它是一種高度優(yōu)化的運行時環(huán)境,專門設(shè)計用于執(zhí)行Java字節(jié)碼。由于JVM具有即時編譯器(Just-In-Time Compiler),它可以將字節(jié)碼編譯成的字節(jié)碼轉(zhuǎn)換為本機機器代碼,這將大大提高代碼的執(zhí)行速度。

JavaScript:執(zhí)行環(huán)境為瀏覽器或者Node.js等運行時環(huán)境。而這些環(huán)境都缺少了像Java的執(zhí)行環(huán)境JVM那種強大的編譯和優(yōu)化工具,因此執(zhí)行代碼時性能較差,執(zhí)行速度慢。

JVM就相當(dāng)于游戲加速器,而JS沒有,這使得Java的執(zhí)行性能要遠高于JavaScript.

既然Java比JavaScript快,為什么JavaScript沒被淘汰呢?

你別看兩門語言名字差不多,但是他們相同之處卻非常少,運用的領(lǐng)域也各不相同。Java和JavaScript這兩種語言沒有直接關(guān)系,盡管它們的名稱相似。其中Java是由Sun公司(現(xiàn)在是Oracle Corporation)開發(fā)的,而JavaScript最初由Netscape Communications Corporation開發(fā),后來被標(biāo)準(zhǔn)化為ECMAScript。

用途不同

Java:通常用于開發(fā)大型、高性能的應(yīng)用程序,包括企業(yè)級應(yīng)用、桌面應(yīng)用、游戲等,我們熟知的編譯軟件IDEA、Eclipse、netbean都是Java做的。游戲方面,曾爆火的游戲《我的世界》就是用Java開發(fā)的。Android的核心系統(tǒng)也是采用Java語言編寫的,尤其采用Java的核心庫,如Apache Harmony來實現(xiàn)JVM。因此,它在執(zhí)行速度和性能方面進行了很多優(yōu)化。

JavaScript:主要用于前端網(wǎng)頁的開發(fā),市面上現(xiàn)今大部分網(wǎng)站,以及微信小程序都是在JS結(jié)合其他后端語言,比如Node.js等語言進行開發(fā)的,其主要實現(xiàn)的目的是與用戶交互,因此它的執(zhí)行速度通常不是關(guān)鍵問題。

語言類型不同

Java:靜態(tài)類型語言,類型檢查在編譯時進行,這有助于檢測和預(yù)防很多錯誤,但也增加了編程的復(fù)雜性。

JavaScript:動態(tài)類型語言,類型檢查發(fā)生在運行時,這使得代碼更加靈活,但也可能導(dǎo)致在運行時出現(xiàn)類型相關(guān)的錯誤。

其他不同之處

1、對象模型不同

Java:一種嚴(yán)格面向?qū)ο蟮木幊陶Z言,所有代碼都必須包含在類中,支持繼承、封裝、多態(tài)等面向?qū)ο缶幊谈拍睢?/p>

JavaScript:雖然也可以支持面向?qū)ο缶幊?,但其對象模型不同于Java。JavaScript的對象是動態(tài)的,可以隨時添加或刪除屬性和方法。

2、類型系統(tǒng)不同

Java:一種強類型語言,需要在編寫代碼時明確定義變量的類型,同時在編譯時進行類型檢查。

JavaScript:是一種弱類型語言,變量的類型可以在運行時動態(tài)更改,不需要明確指定類型。

總結(jié)

Java的執(zhí)行速度確實高于JavaScript,但Java和JavaScript也是兩種完全不同的編程語言,它們在用途上以及語法上存在很多不同之處,開發(fā)者需要根據(jù)具體項目需求來選擇使用哪種語言。盡管它們有相似的名稱,但它們沒有直接關(guān)聯(lián)。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2975

    瀏覽量

    105184
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1951

    瀏覽量

    35002
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    53954

原文標(biāo)題:每天一個知識點:尋找JavaScript和Java的區(qū)別

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    JavaScript教程

    JavaScript教程:JavaScript是由Netscape公司開發(fā)并隨Navigator導(dǎo)航者一起發(fā)布的、介于Java與HTML之間、基于對象事件驅(qū)動的編程語言,正日益受到全球的關(guān)注。因它
    發(fā)表于 10-21 09:17

    Java SE、Java EE、Java ME之間的區(qū)別

    本文把JAVA SE、JAVA EE、JAVA ME拿來做下區(qū)別,同時也分享一下作者的一些成果。目前的Java平臺根據(jù)軟件開發(fā)人員、服務(wù)提供
    發(fā)表于 07-11 08:31

    PCB制板和打樣的區(qū)別有哪些

    `請問PCB制板和打樣的區(qū)別有哪些?`
    發(fā)表于 03-18 15:11

    jQuery與JavaScript與ajax有什么區(qū)別?

    jQuery與JavaScript與ajax三者的區(qū)別與聯(lián)系
    發(fā)表于 04-01 16:18

    JavaScript 簡介

    的輸入。### 實例 ###```if isNaN(x) {alert("Not Numeric")};```## javajavascript ##提示:JavaScript
    發(fā)表于 09-09 17:30

    Javascript高級程序設(shè)計 (pdf下載)

    Javascript高級程序設(shè)計JavaScript是一種不嚴(yán)格基于Java的面向?qū)ο蟪绦蛟O(shè)計語言,以嵌入式Java小程序的形式在Web上廣為使用?!?/div>
    發(fā)表于 10-21 09:06 ?0次下載
    <b class='flag-5'>Javascript</b>高級程序設(shè)計 (pdf下載)

    電線與電纜的區(qū)別有哪些?

    電線與電纜的區(qū)別有哪些? “電線”和“電纜”并沒有嚴(yán)格的界限。通常將芯數(shù)少、產(chǎn)品直徑小、結(jié)構(gòu)簡單的產(chǎn)品稱為電線,沒有絕緣
    發(fā)表于 03-12 11:15 ?1327次閱讀

    固態(tài)硬盤與普通硬盤的區(qū)別有哪些

    固態(tài)硬盤與普通硬盤的區(qū)別有哪些
    發(fā)表于 09-18 11:30 ?11次下載

    JavaScript有什么特點_JavaJavaScript有什么不同

    javascript是一種輕量級的編程語言,可以嵌入到html頁面中,由來瀏覽器來解釋執(zhí)行,用來實現(xiàn)瀏覽器和用于交互。javascript是一種基于對象和事件驅(qū)動的客戶端腳本語言,他可以在用戶瀏覽器為網(wǎng)頁添加一些動態(tài)效果。
    發(fā)表于 12-04 16:37 ?5237次閱讀

    JavaScript的入門基礎(chǔ)教程免費下載

     JavaScript 語言的前身叫作Livescript。自從Sun 公司推出Java 語言之后,Netscape 公司引進了Sun 公司有關(guān)Java 的程序概念,將自己原有的Livescript重新進行設(shè)計,并改名為
    發(fā)表于 11-05 14:00 ?14次下載
    <b class='flag-5'>JavaScript</b>的入門基礎(chǔ)教程免費下載

    CPU和GPU的區(qū)別有哪些

    CPU和GPU的區(qū)別有哪些呢?接下來簡單給大家介紹一下關(guān)于GPU和CPU的區(qū)別
    的頭像 發(fā)表于 01-06 17:07 ?3.1w次閱讀

    JavaJavaScript區(qū)別異同分析

    Java 是一種通用的編程語言,而 JavaScript 被用于網(wǎng)站上以使其具有動畫和交互性。由于 JavaScript 已經(jīng)發(fā)展,現(xiàn)在比較有點復(fù)雜。
    的頭像 發(fā)表于 08-22 14:28 ?3019次閱讀
    <b class='flag-5'>Java</b>和<b class='flag-5'>JavaScript</b>的<b class='flag-5'>區(qū)別</b>異同分析

    java和javaweb和javascript區(qū)別

    Java、JavaWeb和JavaScript是三個相關(guān)但又有一定差異的編程語言和技術(shù)。本文將詳細介紹它們的定義、特點、用途和區(qū)別。 Java是一種面向?qū)ο蟮木幊陶Z言,由Sun
    的頭像 發(fā)表于 11-16 10:48 ?13w次閱讀

    javascript基于什么的語言

    瀏覽器上運行的腳本語言,用來增強網(wǎng)頁的交互性和動態(tài)性。最初的JavaScript被命名為LiveScript,但后來在與Sun公司合作推出Java后,為了借用Java的聲望,Netscape將其更名
    的頭像 發(fā)表于 12-03 11:28 ?1108次閱讀

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    Java Web和Java是兩個不同的概念,它們在功能、用途和實現(xiàn)方式上存在一些區(qū)別,下面將詳細介紹它們之間的區(qū)別。 1. 功能和用途: – Jav
    的頭像 發(fā)表于 07-16 13:35 ?911次閱讀
    華納云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么<b class='flag-5'>區(qū)別</b><b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么<b class='flag-5'>區(qū)別</b>