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