求解JAVA 与 Node.js各自的优劣?求大家帮我解答下?
发布于 9 年前 作者 wlpeter 14565 次浏览 最后一次编辑是 8 年前 来自 问答

经常听人说到nodejs会取代java,但是本人觉得两者并不是你死我活的存在,在某些项目中完全可以相互补足的。 本人对两者的优劣还是不太清楚,网上又是众说纷纭,我只知道nodejs强在IO上,但对CPU利用率不高。 求大神帮我解答下java和node.js各自的优点缺点。。。

8 回复

JAVA适合企业级应用程序开发,已经经历那么多年,很完善了。如果你要降低降低系统开发,维护,后期运维成本,可以考虑用JAVA吧,用的人也多。 Node.js个人觉得适合网联网应用程序,IO强是因为它是单线程非阻塞模式,开发起来跟JAVA感觉也不一样,CPU利用不高是因为你是单线程的,现在机器基本都是多个CPU的,如果你做集群,其实它更适合机器CPU的运行模式。

谁告诉你nodejs要替代java的?这话说得非常不严谨,一个异步框架和一个语言去谈谁替代谁恐怕不合适。

事实情况是,javascript要成为java,不是替代,而是成为,javascript的目标是吸收所有编程语言的精华,召唤编程语言小怪兽。。。

用替代这个词,那是太小看javascript了,灭java只是顺带的,成为宇宙终极语言才是真正的目标。。。

有人看到ES6标准之后惊呼,又一个c++正在路上。。。

nodejs 可以往全栈发展,js作为一门脚本语言,写起来是很方便的。 java目前是不会被取代的,毕竟还有安卓阵营在。java这么多年的发展,各种框架,应用都很完善,node是近几年发展快,存在很多未知因素。

node有子进程模块,可以fork出多个进程,充分利用多核CPU。

@coordcn 我感觉是又一个java正在路上了。。。

Java和nodejs的优劣。java是一种编程语言,nodejs是一个Javascript的执行环境(runtime)。所以楼主想说的是java环境下跟nodejs相同的那些东西与nodejs的比较吧。 首先,语言就是Java和Javascript的比较了。java是静态语言,javascript是动态语言。javascript支持函数作为参数,java得搞一个类。java语言已经非常成熟,有比如注解(Annotation)、反射等的特性。Javascript正在发展中,ES6开始广泛使用,ES7正在路上。 思维方面。NodeJS是异步的世界,程序员一开始就要求使用异步的思维。而Java方面,同步的情况居多,所以思维也是同步的多。 开发效率方面,nodejs要简单一些,而java所使用的框架(比如Spring)相对复杂一些,但是同时也带来了许多其他的功能(这些功能不一定能用到)和可能的扩展。前期开发,据说使用nodejs的速度更快,但是到了一定量的代码之后,可维护性不如java。(毕竟java是静态语言,以上是据说。) 性能方面,据说使用NodeJS会比Java快一些。但是我相信Java也可以得到同样的效率,只是付出的代价要大一些。你可能需要去了解并实现多线程相关的东西,而NodeJS虽然是单线程,但是其背后的V8引擎是多线程,其多线程实现并不需要程序员了解。 构建方面,Java项目使用的maven,gradle构建,其构建语言都不是java。nodejs的构建使用的就是javascript语言。 库方面,java这么多年,库比javascript要多,比如一些图像处理的库java有javascript就没有啊。各种工具都比较成熟,比如openstack,RabbitMQ等。当然nodejs的库也不少,尤其是用于网站开发的库。 由于nodejs使用了javascript语言,而前端也是用的javascript,所以前端开发来搞后端要简单一些。

@i5ting 异步IO,event-based优先的Java正在路上了。。。

@kolyjjj 是的,异步和nio已经不是node的优势了,不过java也有它蛋疼的地方。。。。

回到顶部