Node.js
你可能会说
前端也能写后端,那还要 Java 吗?
让 JavaScript 跑在服务器上的运行时事件循环 + 非阻塞 IO,适合大量并发请求;单线程不适合 CPU 密集计算,重活要拆到队列或别的服务。
也常被叫作Node服务端 JavaScript
什么时候选它
- BFF、网关、实时接口(WebSocket)
- IO 密集、请求之间互不阻塞的服务
- 前端团队全栈、快速原型、Serverless 函数
什么时候别选
- 视频转码、图像处理、复杂计算等 CPU 密集任务
- 长时间后台计算,又不想做任务拆分
- 需要强类型和严格分层,团队又不写 TypeScript
容易混在一起 · 怎么分
Node.js≠浏览器 JavaScript
同一门语言、不同宿主:Node 有文件/网络 API 和进程,浏览器有 DOM 与安全沙箱。
Node.js≠Java
Node 轻量、IO 并发模型简单;Java 线程池 + JVM 更适合 CPU 密集和大型业务系统。
Q面试会问什么
- 问:为什么能高并发?
答:事件循环 + libuv 线程池处理 IO,主线程不阻塞;一个进程能同时挂很多连接。 - 问:什么会阻塞它?
答:同步 IO、大 JSON 解析、正则回溯、CPU 循环;这些会卡住整个事件循环。
延伸阅读 · 权威出处