我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js对于Java开发者是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js对于Java开发者是什么

这篇文章主要讲解了“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开发者是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js对于Java开发者是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js对Java开发者而言是什么东西

这篇文章主要介绍Node.js对Java开发者而言是什么东西,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们都知道Node.js现在得到了所有的关注。每个人都对学习Node.js感兴趣,并希望可以工作于Node.j
2023-06-17

NodeJS对于Java开发者而言是什么

NodeJS对于Java开发者而言是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们都知道Node.js现在得到了所有的关注。每个人都对学习Node.js
2023-06-17

亚马逊开发者id是什么

亚马逊开发者ID是一个唯一的标识符,用于识别和验证开发者在亚马逊开发者平台上的身份。开发者ID是由亚马逊颁发的,用于访问和使用亚马逊的开发者工具和服务。它是开发者在创建和管理亚马逊开发者账户时生成的,并且通常以类似于"amzn1.application.123456789abcdef"的格式呈现。开发者ID是保密的,应该妥善保管,以确保账户的安全性和合规性。如果您是亚马逊开发者,您可以在亚马逊开发者门户网站上找到您的开发者ID。
2023-10-27

什么是java web开发

Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等
什么是java web开发
2014-07-04

亚马逊开发者账号是什么

亚马逊开发者账号是一个允许开发者访问亚马逊Web服务(AWS)和亚马逊应用程序接口(API)的账户。开发者可以使用这个账户来创建和管理他们的应用程序、访问AWS的各种服务和工具、以及与其他开发者和AWS社区进行交流和合作。开发者账号还提供了一些额外的功能,如免费的AWS培训、技术支持和资源,以及访问AWSMarketplace上的应用程序和服务。开发者账号可以通过亚马逊开发者门户网站注册,注册过程需要提供一些...
2023-10-27

Java新手开发者需要注意什么

这篇文章主要介绍“Java新手开发者需要注意什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java新手开发者需要注意什么”文章能帮助大家解决问题。Java 是一个多功能的编程语言,在某种程度上,
2023-06-16

Java中对于并发问题的处理方法是什么

本篇内容介绍了“Java中对于并发问题的处理方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先我们一起回顾一些并发的场景最基本的,
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录