日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Java和JavaScript之间的区别

發布時間:2023/12/3 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java和JavaScript之间的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.簡介

我們將在本文中比較Java語言和JavaScript語言。 JavaScript由Netscape開發。 它最初是用于客戶端的腳本語言,后來又用作客戶端和服務器腳本的語言。 Java由James Gosling由Sun Microsystems開發。 這些天來,JavaScript在服務器中以node.js的形式使用。 Java和JavaScript之間在程序編碼,編譯和運行方式方面存在許多差異。

JavaScript首先被稱為Mocha,然后被稱為LiveScript。 現在它被稱為當前名稱。 Java被稱為Oak,然后稱為Green。

2. Java和JavaScript之間的區別

2.1先決條件

在Linux,Windows或Mac操作系統上需要Java 8 。 Eclipse Oxygen可以用于此示例。 Node.js與Eclipse安裝捆綁在一起。

2.2下載

您可以從甲骨文網站下載Java 8 網站 。 可以從eclipse網站上下載Eclipse Oxygen。 可以從此站點下載Node.js。

2.3設置

2.3.1 Java設置

以下是Java環境所需的設置命令。

設定

JAVA_HOME="/desktop/jdk1.8.0_73" export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH

2.4 IDE

2.4.1 Eclipse氧氣設置

可以從eclipse網站上下載“ eclipse-java-oxygen-2-macosx-cocoa-x86_64.tar”。 雙擊打開tar文件。 使用存檔實用程序將tar文件解壓縮。 解壓縮后,您會在文件夾中找到Eclipse圖標。 您可以通過拖動圖標將Eclipse圖標從文件夾移動到應用程序。

2.5啟動IDE

2.5.1 Eclipse Java

Eclipse具有與語言支持,定制和擴展有關的功能。 您可以單擊Eclipse圖標以啟動Eclipse。 蝕屏幕彈出,如下圖所示:

Eclipse歡迎屏幕

您可以從彈出的屏幕中選擇工作區。 所附圖像顯示了如何選擇它。

Eclipse工作區

您可以在屏幕上看到Eclipse工作臺。 所附的屏幕快照顯示了Eclipse項目屏幕。

Eclipse工作臺

Java Hello World類打印問候語。 添加了下面的屏幕快照,以顯示Eclipse中的類和執行。

Java Hello

您可以從菜單創建一個JavaScript項目,并命名該項目,如以下屏幕快照所示:

JavaScript專案

JavaScript(Node.js)hello程序在IDE中執行。 輸出“問候”顯示在下面的屏幕截圖中。

你好js

2.6內存管理

Java語言具有與內存管理相關的功能,并且是一種內存安全的語言。 垃圾收集是一項有助于收集免費和已釋放資源的功能。 Java開發人員不能超出分配的內存。 在Java中,當內存消耗超出分配范圍時,它將引發錯誤。 與Java相比,JavaScript需要更少的內存。 它廣泛用于網頁中的客戶端腳本編寫。

2.7異常處理

在Java中,可以通過使用try,catch和finally塊來進行異常處理。

Java異常處理

public class ExceptionExample{ public static void main(String args[]) throws Exception{ try{ int result=36/0; System.out.println(" the result is "+result); } catch(ArithmeticException exception){System.out.println(exception);throw new Exception("division by zero"); } finally{System.out.println("finally block is executed at the end");} System.out.println("code below is used for next steps"); } }

JavaScript具有try,catch,throw和finally塊來處理異常處理。

Javascript異常處理

console.log("entering try-catch statement");try {console.log("entering try block");throw "thrown message";console.log("this message is never seen"); } catch (e) {console.log("entering catch block");console.log(e);console.log("leaving catch block"); } finally {console.log("entering and leaving the finally block"); }console.log("leaving try-catch statement");

2.8多重繼承

讓我們舉一個例子,看看如何用Java和JavaScript處理它。 卡車是車輛和機器。

多重繼承

Java不支持多重繼承。 每個類只能在一個類上擴展,但可以實現多個接口。 下面的示例代碼顯示了Truck類的實現接口Machine and Vehicle Interfaces

多重繼承的例子

interface Machine {int distanceTravelled=100;public int getDistance(); } interface Vehicle {int velocity=50;public int getVelocity(); } public class Truck implements Machine, Vehicle {int time;int velocity;int distanceTravelled;public Truck(int velocity, int time){this.velocity = velocity;this.time = time;}public int getDistance(){distanceTravelled= velocity*time; System.out.println("Total Distance is : "+distanceTravelled);return distanceTravelled;}public int getVelocity(){int velocity=distanceTravelled/time;System.out.println("Velocity is : "+ velocity);return velocity;}public static void main(String args[]){Truck truck = new Truck(50,2);truck.getDistance();truck.getVelocity();} }

JavaScript通過使用inheritsMultipleObjects函數支持多重繼承。 以下示例顯示了Truck如何分別從Vehicle和Machine繼承函數getDistance和getVelocity。

多重繼承-Javascript

function inheritsMultipleObjects(baseObject, superObjects) {return new Proxy(baseObject,{get(target, key, rec) {if (Reflect.ownKeys(target).includes(key)) {return Reflect.get(target, key);}const parent = superObjects.find(_parent => Reflect.has(_parent, key));if (parent !== undefined) {return Reflect.get(parent, key);}return undefined;},has(target, key) {if (Reflect.ownKeys(target).includes(key)) {return true;}const parentHasKey = superObjects.some(_parent => Reflect.has(_parent, key));if (parentHasKey) {return true;}return false;}}); }class Vehicle {getDistance() {return 100;} } class Machine {getVelocity() {return 50;} } class Truck {} const _truck = new Truck(); const truck = inheritsMultipleObjects(_truck,[Truck.prototype,Vehicle.prototype, Machine.prototype] ); console.log(truck.getDistance()); console.log(truck.getVelocity()); console.log(truck.constructor);

2.9線程

Java具有內置的類來創建線程。 要創建一個新線程,一個類必須擴展一個Thread類,并且必須重寫run方法。

線程示例

public class NewThread extends Thread { public void run(){ System.out.println("Thread running now"); }public static void main(String args[]){ NewThread newThread =new NewThread(); newThread.start(); } }

Java提供了另一種創建線程的方法。 可以實例化實現Runnable的類,并將其作為參數傳遞給Thread類。 下面提供了示例代碼:

線程對象–可運行

public class ThreadObject implements Runnable { public void run(){ System.out.println("ThreadObject running"); } public static void main(String args[]) { ThreadObject threadObject =new ThreadObject(); Thread thread =new Thread(threadObject); thread.start(); } }

JavaScript具有基于事件的機制來處理并發。 Node.js是一種單線程語言。 它使用多個線程在后臺異步執行代碼。 讓我們看一下下面代碼中的派生線程示例:

分叉線程

const { fork } = require('child_process'); var express = require('express'); var app = express(); app.get('/endpoint', (request, response) => {const process = fork('./mail.js');const mail_messages = request.body.emails;process.send({ mail_messages });process.on('sendmail', (message) => {log.info(` mail count ${message.counter}`);});return response.json({ status: true, sent: true }); });

下面的代碼顯示sendMultiplemails如何異步執行。

發送郵件

async function sendMultipleMails(mails) {let sendMails = 0;// code for sending multiple mailsreturn sendMails; }process.on('sendmail', async (message) => {const countOfMailsSent = await sendMultipleMails(message.mails); process.send({ counter: countOfMailsSent }); });

2.10便攜性

Java語言由計算機上的Java解釋器解釋,與操作系統無關。 Java程序在Java虛擬機上作為字節代碼執行。 Java代碼位于擴展名為.java的程序中。

Java可移植性

HTML頁面中將JavaScript用于客戶端腳本,該腳本在瀏覽器上執行。 基于Node.js的服務器端腳本由特定操作系統上的版本8(ECMAScript)JavaScript引擎執行。 該代碼寫在擴展名為.js的文件中。

節點運行時

2.11類型

Java是一種靜態類型的語言。 Java語言具有原始類型和對象類型。 Java具有與自動裝箱相關的功能,該功能可自動轉換類型。 java.lang.Object類是所有類的基類,而Java遵循命令的單個根鏈。

Java類型

JavaScript是一種動態類型的語言。 在編譯期間,使用var關鍵字聲明變量。 在檢查相等性或任何其他運算符時,將動態處理這些類型。

JavaScript類型

2.12庫

Java包有助于打包類。 包范圍是Java語言的另一個功能。 Java歸檔文件有助于對類包進行分組,以用于執行和安裝。

Java檔案

JavaScript模塊和軟件包由node.js和客戶端Web歸檔文件中JavaScript文件組成。

JavaScript模塊

2.13運行時錯誤

在Java中,運行時錯誤由編譯器和解釋器提供。

Java運行時錯誤

JavaScript是一種動態類型的語言,因此可以處理任何類型的數據。 空指針異常不會在JavaScript中發生。 使用運行時(node.js)或在瀏覽器中運行代碼時,會發生運行時錯誤。

JavaScript運行時錯誤

2.14文檔

Java具有支持注釋的功能,可用于文檔生成器。 JavaScript還支持可用于文檔生成的注釋。

2.15移動與網絡與桌面

Java語言可用于移動,Web和桌面應用程序開發。 Android支持Java。 JavaScript用于在Android,IOS和其他移動操作系統中構建HTML5(網絡)和混合移動應用程序。

2.16編程范例

Java是一種面向對象的類和并發編程語言。 Java當前支持版本8中的功能編程功能。JavaScript是一種多范例語言,支持面向對象,過程和功能范例。

3.結論

總體而言,Java比JavaScript具有很多優勢。 下面的比較表捕獲了Java和JavaScript之間的差異。

比較表

特征 Java JavaScript
內存管理 垃圾收集是Java中的一項功能。 Java中沒有指針。 Java程序消耗更多內存 JavaScript需要更少的內存。 它在網頁中廣泛使用
遺產 接口可用于多重繼承。 Java支持單繼承。 JavaScript使用InheritsMultipleObjects函數支持多重繼承
線程數 Java具有Thread類和Runnable接口以使用線程。 JavaScript(Node.js)是一種單線程語言,可派生一個線程以異步運行多個線程。
可移植性 Java字節碼取決于平臺。 JavaScript是與平臺無關的。 運行時(節點運行時)取決于平臺。
訪問控制 封裝有助于對Java中的類變量和屬性進行訪問控制。 JavaScript具有對象屬性以提供對變量的訪問控制。
種類 Java中使用單個命令模式根鏈。 JavaScript是一種弱類型語言。
圖書館 Java歸檔文件用于構建Java庫。 JavaScript(Node.js)具有模塊和包。
運行時錯誤 在Java的編譯和執行階段檢測到運行時錯誤 在執行階段會檢測到JavaScript運行時錯誤。
性能 與JavaScript相比,Java性能要慢一些。 與Java相比,JavaScript性能更快,因為解釋器自己運行JavaScript代碼。

4.下載源代碼

下載
您可以在此處下載此示例的完整源代碼: Java和JavaScript之間的區別

翻譯自: https://www.javacodegeeks.com/difference-between-java-and-javascript.html

總結

以上是生活随笔為你收集整理的Java和JavaScript之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。