Node.js和java后台服务器的简单比较


当前第2页 返回上一页

Node.js中,我们不断嵌套回调函数的同时,很容易就陷入回调函数的陷阱中,每层嵌套都会让代码更复杂,使得错误处理和结果处理更困难。一个相关的问题就是js语言不会帮助程序员恰当地表达异步执行。其实有些库会使用Promise来简化异步操作,但是看起来我们把问题简单化了,但是事实上代码层面更复杂化了,Promise用了许多样板代码,掩盖了程序员的真实意图。

后来Node.js支持ES5ES6,可以采用async/await函数重写回调函数。还是同样的异步结构,但使用了正常的循环结构来书写。错误和结果处理的位置也很自然,代码更易于理解,更容易编写,而且也可以很容易地理解程序员的意图。回调陷阱并不是用掩盖复杂性的方式解决的。

相反,语言和范式的改变解决了回调陷阱的问题,同时还解决了过多样板代码的问题。有了async函数,代码就更漂亮了。简单化的解决方法,将Node.js的缺点转化为了优点。但是JavaScript的类型很松散。而且在你书写代码的时候不会进行报错,许多类型不需要定义,通常也不需要用类型转换。

因此代码更清晰易读,但存在漏掉编码错误的风险,只有在编译的时候才会去检查你语法以及逻辑是否存在问题,所以在Node.js中,为了更好的调试BUGNode支持将程序分成不同的模块,因为有模块的存在,将错误发生的范围缩小到某个范围内,使得Node.js模块更容易测试。

包管理

Java最重要的问题之一就是没有统一的包管理系统,可能有人会和我说Maven.但是无论是用途、易用性还是功能上,MavenNode.js的包管理系统相比简直是天壤之别。

npmNode.js 官方提供的包管理工具,他已经成了 Node.js 包的标准发布平台,用于 Node.js 包的发布、传播、依赖控制。npm 提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。

最好的地方是npm代码库不仅供Node.js使用,也可以让前端工程师使用。所有的前端JavaScript库都以npm包的形式存在。许多前端工具如Webpack都是用Node.js编写的。

性能

Java使用HotSpot这个超级虚拟机,它采用了多字节编译策略。它会检测经常执行的代码,一段代码执行次数越多,就会应用越多的优化。因此HotSpot性能相对来说更快。

Node底层选择用c++v8引擎来实现的,Node.js的事件驱动机制,这意味着要面对大规模的http请求,Node.js是凭借事件驱动来完成的,性能部分是不用担心的,并且很出色。而且,由于V8引擎的改进,Node.js的每次发布都会带来巨大的性能提升。

虽然Node对高并发应用有着极高的性能,但是Node.js也有着自己的缺点:

  • Node不适合CPU密集型应用,因为CPU密集型应用如果有长时间的运算,不如大循环,将会导致CPU时间片不能释放,使得后续的IO操作全部暂停。

  • 而且Node只支持单核CPU,不能充分利用CPU资源。

  • 可靠性低,一旦代码某个环节崩溃,将会导致整个系统都崩溃,原因就在于Node是使用单进

程。

  • Node的开源组件库质量参差不齐,更新快,而且不向下兼容。

更多编程相关知识,请访问:编程入门!!

以上就是Node.js和java后台服务器的简单比较的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

export和export default中的知识点介绍(附示例)

【java开发】myeclipse 10的下载以及破解教程简易版

2021年值得了解的8个 node.js 框架

为什么要用node.js?哪些场合可以使用 node.js

html转成pdf的4个方法介绍(附代码)

javascript和java有关系吗

javase是什么

一些调试 node.js 程序的快捷方法

js中的var是什么意思

两种升级nodejs的方法介绍

更多相关阅读请进入《node.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...