一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

前言

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

JavaScript(耗時116ms):

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

Java(耗時2ms):

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

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

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

編譯與解釋

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

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

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

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

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

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

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

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

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

用途不同

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

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

語言類型不同

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

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

其他不同之處

1、對象模型不同

Java:一種嚴格面向對象的編程語言,所有代碼都必須包含在類中,支持繼承、封裝、多態(tài)等面向對象編程概念。

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

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

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

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

總結

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

編輯:黃飛

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

    關注

    20

    文章

    2989

    瀏覽量

    109821
  • 編程語言
    +關注

    關注

    10

    文章

    1956

    瀏覽量

    36666
  • javascript
    +關注

    關注

    0

    文章

    525

    瀏覽量

    54822

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    JavaScript教程

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

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

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

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

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

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

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

    JavaScript 簡介

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

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

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

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

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

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

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

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

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

    JavaScript的入門基礎教程免費下載

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

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

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

    JavaJavaScript區(qū)別異同分析

    Java 是一種通用的編程語言,而 JavaScript 被用于網站上以使其具有動畫和交互性。由于 JavaScript 已經發(fā)展,現在比較有點復雜。
    的頭像 發(fā)表于 08-22 14:28 ?3223次閱讀
    <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是三個相關但又有一定差異的編程語言和技術。本文將詳細介紹它們的定義、特點、用途和區(qū)別。 Java是一種面向對象的編程語言,由Sun
    的頭像 發(fā)表于 11-16 10:48 ?13w次閱讀

    javascript基于什么的語言

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

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

    Java Web和Java是兩個不同的概念,它們在功能、用途和實現方式上存在一些區(qū)別,下面將詳細介紹它們之間的區(qū)別。 1. 功能和用途: – Jav
    的頭像 發(fā)表于 07-16 13:35 ?1453次閱讀
    華納云:<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>