Nodejs是什么,有什么用?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
所以 Node 并不是一门语言,而是一个 runtime,也就是经常说的运行时,和我们非常熟悉的 JRE—— java Runtime Environment 非常类似。如同浏览器是 JavaScript 的运行时,我们有时候也会称之为宿主环境或者运行环境,Node 是 J***aScript 在服务器端的一个运行时。
Node 使用了***驱动和非阻塞的 I/O 模型,使 Node 轻量高效,非常适合 I/O 密集的 web 场景。
很多语言是依赖的多进程、线程解决高并发,一个线程处理一条用户请求,处理完成了释放线程,在阻塞 I/O 模型下, I/O 期间该用户线程所占用的 CPU ***(虽然十分微量,大部分交给了 DMA)什么都不做,等待 I/O,然后响应用户,而且开启多个进程/线程 CPU 切换 Context 的时间也十分可观。
Node.js是一个j***ascript运行环境。它让j***ascript可以开发后端程序,实现几乎其他后端语言实现的所有功能,可以与PHP、J***a、Python、.NET、Ruby等后端语言平起平坐。
Nodejs是基于V8引擎,V8是Google发布的开源J***aScript引擎,本身就是用于Chrome浏览器的js解释部分,但是Ryan Dahl 把这个V8搬到了服务器上,用于做服务器的软件。
nodejs是能够在服务器端运行J***aScript的开放源代码、跨平台运行环境;Node.js***用Google开发的V8运行代码,使用***驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。
是什么让Node.js比J***a更快?为什么NodeJS这么快?
因为nodejs 浏览器就可以解析,他是不需要访问网络啊啥啥啥的各种介质的,而j***a的话可能需要网络,文件,还有多线程。以及和各种设备建立连接关系。而且都是调用别人封装好的东西。肯定性能不如直接解析的好,就像你人直接面对面喊他名字和你让谁谁谁喊一下你要喊的人速度快得多!
为什么J***a不适合游戏开发?
因为j***a中间多出来一个jvm,效率低,游戏实时性很重要。
看一个语言适合开发什么,主要有三点
2.生态圈,有人家提供好的成套解决方案,为什么不用呢?
3.产品的侧重点。
就拿j***a和c++来说,j***a主要用于Web开发,但是c++通过cgi也可以写web,而且c++的执行效率甩j***a几条街,但是为什么不用c++写web呢,因为c++的开发web的效率太低,而j***a有各种web方面的框架,开发效率高。
如果产品是游戏,游戏实时性很重要,你玩个游戏反应慢半拍那肯定很恼火。游戏这个产品的实时性就注定了要***用高效率的语言开发,那c,c++自然就跑不掉了。