选型

Node.js

你可能会说

前端也能写后端,那还要 Java 吗?

让 JavaScript 跑在服务器上的运行时事件循环 + 非阻塞 IO,适合大量并发请求;单线程不适合 CPU 密集计算,重活要拆到队列或别的服务。
也常被叫作Node服务端 JavaScript
先问一句接口多、算得少?
默认Node.js→擅长高并发 IO→别用CPU 密集计算
成熟度采用

什么时候选它

  • 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 循环;这些会卡住整个事件循环。
延伸阅读 · 权威出处