91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js對于Java開發者是什么

發布時間:2021-11-17 14:55:17 來源:億速云 閱讀:179 作者:iii 欄目:web開發

這篇文章主要講解了“Node.js對于Java開發者是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Node.js對于Java開發者是什么”吧!

運行時環境

我們知道Java需要一個稱為JRE的運行時環境來運行Java程序。JRE有一個稱為Java Virtual  Machine(JVM)的虛擬機。JVM有許多組件,如垃圾回收器(GC),即時(JIT)編譯器,解釋器,類裝載器,線程管理器,異常處理器,用于在不同時間執行不同的任務。

除了JVM之外,JRE還有一系列的庫(例如,rt.jar)來幫助運行時的Java程序。我們有單獨的JRE用于不同的平臺,如Windows,Macintosh和Linux,以及還有JVM。

好吧,就試著記住如何編譯和執行一個Java程序。我們有源代碼(.java),它由Java編譯器編譯成一個名為Bytecode(.class)的中間代碼。此Bytecode被提供給JVM以便在給定的目標平臺上執行。JVM在執行之前將Bytecode轉換為特定于目標平臺的機器碼。

Java程序的執行可以通過下面的圖片解釋:

Node.js對于Java開發者是什么

Web應用程序架構

典型的Java  Web應用程序架構有四個層:客戶層(Client),展示層(Presentation),服務/業務層(Service/Business)和數據層(Data)。

Node.js對于Java開發者是什么

客戶層(Client layer)可以使用像jQuery這樣的庫來支持AJAX功能并且具有一些客戶端驗證和DOM操作。

展示層(Presentation layer)通常是與客戶層交互的一個層。該層通常已經實現了用于請求和響應處理的MVC模式。在這一層可以使用如Spring  MVC這樣的框架。此外,還有一個模板引擎,如Velocity,可以根據預定義的布局動態地渲染視圖。

服務或業務層(Service/Business  layer)負責具備業務邏輯并與其他層通信。在AJAX請求的情況下,該層直接向客戶層提供數據。此層執行業務邏輯并回應到展示層以更新模型。服務層是與數據層通信以獲取或更新所需數據的一個層。服務層可以具有使用任何框架,例如Spring的SOAP或REST服務實現。

數據層(Data layer)通常使用一些ORM框架,如Hiberate,或任何基于JDBC的庫/模板(Spring  JDBC模板)來與任意RDBMS(如Oracle)進行通信。

架構部署

Java Web應用程序架構部署包括Apache  HTTP服務器,它充當代理服務器以及提供靜態內容。動態內容由Web容器提供,Web容器實際上是處理Java文件的引擎。

下圖說明了Java Web應用程序的架構部署:

Node.js對于Java開發者是什么

我如何理解Node.js?

運行時環境

我們上面討論JRE的原因是為了直接與Node.js進行比較。對,你看明白了吧!  Node.js不是一種語言;不是框架;也不是工具。它是用于運行基于JavaScript應用程序的運行時環境。

與JRE類似,Node.js有一個稱為JavaScript Virtual  Machine(JsVM?)的虛擬機。它為基于JavaScript的應用程序生成機器代碼,以便在不同的平臺上啟用它。

Node.js還有一系列庫,它們可能被稱為Node API或Node  Modules,用于幫助在運行時運行JavaScript應用程序,類似于JRE中的Java庫。我們對不同的平臺,如Windows,Macintosh和Linux,以及JsVM有不同的Node.js要求。

JavaScript Virtual Machine就是V8,來自Google的開源JavaScript引擎。與Java Virtual  Machine一樣,JsVM(V8引擎)也有主要組件,如JIT和GC,分別用于執行任務,運行時編譯,和內存管理。

現在,讓我們試試理解JavaScript程序是如何編譯和執行的。源代碼是用JavaScript(.js)編寫的。在將其提供給JsVM(V8引擎)之前,沒有生成中間代碼。JsVM直接獲取此源代碼并將其編譯為特定于給定目標平臺的機器代碼以便執行。

下面的圖片可以簡明地說明上述解釋:

Node.js對于Java開發者是什么

Web應用程序架構

基于Node.js的Web應用程序主要遵循Java  Web應用程序架構。主要區別在于客戶端請求處理。客戶端請求將由單個線程處理,但在Node.js應用程序的情況下將異步處理。使用Java,每個客戶端請求將由單獨的線程同步處理,因此它是多線程的。

有許多框架/庫可用于基于Node.js的Web應用程序開發。這里有趣的地方在于,所有的框架/庫都是基于JavaScript的。

你可以從下面的圖片中快速理解不同的層和在那些Node.js應用程序層中使用的框架/庫。

Node.js對于Java開發者是什么

客戶層使用Angular.js,客戶端MVC框架。展示層,以及服務層,可以通過使用Express.js,一個基于JavaScript的Web應用程序框架來開發。這也自帶一個用于運行Node.js應用程序的獨立服務器。數據層使用對象數據建模模塊(例如Mongoose.js)來與NoSQL數據庫(如MongoDB)通信。

這個特殊的棧稱為MEAN,它由MongoDB,Express.js,Angular.js,客戶端MVC框架和Node.js(運行時環境)組成。

架構部署

基于Node.js的Web應用程序的架構部署遵循Java的Web應用程序部署架構。它有一個NGINX服務器,它的作用就如同HTTP代理服務器,并提供靜態內容。動態內容由Node.js服務器提供,該服務器包含處理JavaScript文件的引擎。

下面的圖解釋了基于Node.js的Web應用程序的架構部署:

Node.js對于Java開發者是什么

感謝各位的閱讀,以上就是“Node.js對于Java開發者是什么”的內容了,經過本文的學習后,相信大家對Node.js對于Java開發者是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵武市| 衡南县| 房山区| 平远县| 龙州县| 太和县| 岳普湖县| 通城县| 精河县| 团风县| 玉树县| 望奎县| 天门市| 宜宾市| 巧家县| 小金县| 洮南市| 五华县| 县级市| 彭水| 聂拉木县| 花莲县| 房山区| 安岳县| 莒南县| 赣榆县| 桐城市| 黔南| 永泰县| 太仓市| 文山县| 内乡县| 门头沟区| 新田县| 鞍山市| 盐边县| 锡林郭勒盟| 陇南市| 余姚市| 沂水县| 百色市|