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

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

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

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

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

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

前言

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

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

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

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

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

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

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

編譯與解釋

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

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

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

執(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沒有,這使得Java的執(zhí)行性能要遠(yuǎn)高于JavaScript.

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

你別看兩門語言名字差不多,但是他們相同之處卻非常少,運(yùn)用的領(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來實(shí)現(xiàn)JVM。因此,它在執(zhí)行速度和性能方面進(jìn)行了很多優(yōu)化。

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

語言類型不同

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

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

其他不同之處

1、對象模型不同

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

JavaScript:雖然也可以支持面向?qū)ο缶幊蹋鋵ο竽P筒煌贘ava。JavaScript的對象是動態(tài)的,可以隨時(shí)添加或刪除屬性和方法。

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

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

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

總結(jié)

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

編輯:黃飛

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

    關(guān)注

    20

    文章

    2983

    瀏覽量

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

    關(guān)注

    10

    文章

    1952

    瀏覽量

    35835
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54395

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

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

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎ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ū)別,同時(shí)也分享一下作者的一些成果。目前的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 簡介

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

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

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

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

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

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

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

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

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

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

     JavaScript 語言的前身叫作Livescript。自從Sun 公司推出Java 語言之后,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ū)別有哪些呢?接下來簡單給大家介紹一下關(guān)于GPU和CPU的區(qū)別
    的頭像 發(fā)表于 01-06 17:07 ?3.2w次閱讀

    JavaJavaScript區(qū)別異同分析

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

    javascript基于什么的語言

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

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

    Java Web和Java是兩個(gè)不同的概念,它們在功能、用途和實(shí)現(xiàn)方式上存在一些區(qū)別,下面將詳細(xì)介紹它們之間的區(qū)別。 1. 功能和用途: – Jav
    的頭像 發(fā)表于 07-16 13:35 ?1279次閱讀
    華納云:<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.黄黄黄 | 国产网红主播精品福利大秀专区 | 欧美极品色影院 | 天天射天天干天天插 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 亚洲一区二区在线免费观看 | 喷潮白浆直流在线播放 | 日本xxxxxxxxx68 | 高清毛片一区二区三区 | 免费一日本一级裸片在线观看 | 大学生毛片| 国产手机看片 | 国产卡一卡2卡三卡免费视频 | 一级毛片无毒不卡直接观看 | 99久久国产免费 - 99久久国产免费 | 久久狠狠第一麻豆婷婷天天 | 国产卡1卡2卡三卡网站免费 | 在线精品国产成人综合第一页 | 欧美成人全部免费观看1314色 | 轻点灬大ji巴太粗太大了小说 | 成人久久久精品乱码一区二区三区 | 久久天天躁狠狠躁夜夜躁 | 91色欧美| 欧美国产日本高清不卡 | 天天看天天摸天天操 | 天天干天天舔 | 久青草视频在线播放 | 五月亭亭免费高清在线 | 成人黄色激情网 | 久热99| 综合激情六月 | 国产色婷婷精品免费视频 | 二区久久国产乱子伦免费精品 | 久久精品国产亚洲婷婷 | 天堂在线影院 | 欧美69xx| 免费看va | 57pao强力打造免费高清高速 | 午夜短视频 |