NIO主要有三大核心部分:Channel(通道),Buffer(緩沖區(qū)), Selector。
傳統IO基于字節(jié)流和字符流進行操作,而NIO基于Channel和Buffer(緩沖區(qū))進行操作,數據總是從通道讀取到緩沖區(qū)中,或者從緩沖區(qū)寫入到通道中。Selector(選擇區(qū))用于監(jiān)聽多個通道的事件(比如:連接打開,數據到達)。因此,單個線程可以監(jiān)聽多個數據通道。
NIO和傳統IO(一下簡稱IO)之間個最大的區(qū)別是,IO是面向流的,NIO是面向緩沖區(qū)的。