培育能力的事必須繼續不斷地去作,又必須隨時改善學習方法,提升學習效率,纔會成功。 —— 葉聖陶javascript
Node的首要目標是提供一種簡單的,用於建立高性能服務器的開發工具。還要解決web服務器高併發的用戶請求。java
咱們這裏來舉個例子,咱們node和java相比,在一樣的請求下誰更佔優一點。看圖node
當用戶請求量增高時,node相對於java有更好的處理併發
性能,它能夠快速經過主線程綁定事件。java每次都要建立一個線程,雖然java如今有個線程池
的概念,能夠控制線程的複用和數量。 異步i/o操做,node能夠更快的操做數據庫。java訪問數據庫會遇到一個並行的問題,須要添加一個鎖的概念。咱們這裏能夠打個比方,下課去飲水機接水喝,java是一會兒有喝多人去接水喝,須要等待,node是每次都只去一我的接水喝。 密集型CPU運算指的是邏輯處理運算、壓縮、解壓、加密、解密,node遇到CPU密集型運算時會阻塞主線程(單線程)
,致使其下面的時間沒法快速綁定,因此node不適用於大型密集型CPU運算案例
,而java卻很適合。web
web端場景主要是用戶的請求
或者讀取靜態資源
什麼的,很適合node開發。應用場景主要有聊天服務器
,電子商務網站
等等這些高併發的應用。數據庫
Node.js是一個基於 Chrome V8 引擎的JavaScript運行環境(runtime)
,Node不是一門語言,是讓js運行在後端的運行時
,而且不包括javascript全集,由於在服務端中不包含DOM
和BOM
,Node也提供了一些新的模塊例如http,fs
模塊等。Node.js 使用了事件驅動、非阻塞式 I/O
的模型,使其輕量又高效而且Node.js 的包管理器 npm
,是全球最大的開源庫生態系統。npm
總而言之,言而總之,它只是一個運行時,一個運行環境。後端