在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

馬哥Linux運(yùn)維 ? 來(lái)源:稀土掘金 ? 2023-10-30 11:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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

JavaScript(耗時(shí)116ms):

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

Java(耗時(shí)2ms):

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

為什么會(huì)有如此大的差別呢?

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

編譯與解釋

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

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

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

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

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

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

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

既然Java比JavaScript快,為什么JavaScript沒(méi)被淘汰呢?

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

用途不同

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

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

語(yǔ)言類型不同

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

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

其他不同之處

1、對(duì)象模型不同

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

JavaScript:雖然也可以支持面向?qū)ο缶幊蹋鋵?duì)象模型不同于Java。JavaScript的對(duì)象是動(dòng)態(tài)的,可以隨時(shí)添加或刪除屬性和方法。

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

Java:一種強(qiáng)類型語(yǔ)言,需要在編寫(xiě)代碼時(shí)明確定義變量的類型,同時(shí)在編譯時(shí)進(jìn)行類型檢查。

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

總結(jié)

Java的執(zhí)行速度確實(shí)高于JavaScript,但Java和JavaScript也是兩種完全不同的編程語(yǔ)言,它們?cè)谟猛旧弦约罢Z(yǔ)法上存在很多不同之處,開(kāi)發(fā)者需要根據(jù)具體項(xiàng)目需求來(lái)選擇使用哪種語(yǔ)言。盡管它們有相似的名稱,但它們沒(méi)有直接關(guān)聯(lián)。

編輯:黃飛

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

    關(guān)注

    20

    文章

    2987

    瀏覽量

    107668
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1955

    瀏覽量

    36333
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54609

原文標(biāo)題:每天一個(gè)知識(shí)點(diǎn):尋找JavaScript和Java的區(qū)別

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    JavaScript教程

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

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

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

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

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

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

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

    JavaScript 簡(jiǎn)介

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

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

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

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

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

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

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

    JavaScript有什么特點(diǎn)_JavaJavaScript有什么不同

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

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

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

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

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

    JavaJavaScript區(qū)別異同分析

    Java 是一種通用的編程語(yǔ)言,而 JavaScript 被用于網(wǎng)站上以使其具有動(dòng)畫(huà)和交互性。由于 JavaScript 已經(jīng)發(fā)展,現(xiàn)在比較有點(diǎn)復(fù)雜。
    的頭像 發(fā)表于 08-22 14:28 ?3188次閱讀
    <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是三個(gè)相關(guān)但又有一定差異的編程語(yǔ)言和技術(shù)。本文將詳細(xì)介紹它們的定義、特點(diǎn)、用途和區(qū)別Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,由Sun
    的頭像 發(fā)表于 11-16 10:48 ?13w次閱讀

    javascript基于什么的語(yǔ)言

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

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

    Java Web和Java是兩個(gè)不同的概念,它們?cè)诠δ堋⒂猛竞蛯?shí)現(xiàn)方式上存在一些區(qū)別,下面將詳細(xì)介紹它們之間的區(qū)別。 1. 功能和用途: – Jav
    的頭像 發(fā)表于 07-16 13:35 ?1407次閱讀
    華納云:<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>
    主站蜘蛛池模板: 亚州三级视频 | 天天操夜夜操视频 | 四虎影视院 | 色视频www在线播放国产人成 | 亚洲一区二区精品推荐 | 亚色在线观看 | 美女被免费网站在线视频九色 | 日本丝瓜着色视频 | 欧美三级一区二区 | 国产拍拍拍免费视频网站 | 色多多视频成人影院 | 国产视频三区 | 国产二三区| 777奇米四色米奇影院在线播放 | 美女扒开下面让男人捅 | 奇米网狠狠干 | 性欧美暴力猛交69hd | 俄罗斯小屁孩cao大人免费 | 男女交性视频免费播放 | 狠狠狠狠干 | 亚1洲二区三区四区免费 | 日本免费人成黄页网观看视频 | 77788色淫网站免费观看 | 日韩毛片在线 | 2018天天操天天干 | 欧美在线免费 | 精品少妇一区二区三区视频 | 欧美一区二区三区视频在线观看 | 蜜色网| 亚洲婷婷在线视频 | 性欧美人与zooz | 国产三级精品在线观看 | 精品卡1卡2卡三卡免费网站视频 | 18黄无遮挡免费视频 | 四虎.com| 黄色的视频在线免费观看 | 欧美一区二区三区视频在线观看 | 国产20岁美女一级毛片 | 亚洲精品久久婷婷爱久久婷婷 | 亚洲特黄大黄一级毛片 | 亚洲国内精品久久 |