一、Buffer緩衝區
用戶數據處理的基礎單元,客戶端發送與接收數據都需要通過Buffer轉發進行
二、Channel通道
類似於流;但不同於IN/OUT Stream;流具有獨佔性與單向性;通道則偏向於數據的流通多樣性
三、Selectors選擇器
處理客戶端所有事件的分發器
四、Charset擴展部分
Charset字符編碼:加密、解密
原生支持的、數據通道級別的數據處理方式,可以用於數據傳輸級別的數據加密、解密等操作
五、NIO-Buffer
Buffer包括
ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer
與傳統不同,寫數據時先寫到Buffer->Channel;讀則反之
與傳統不同,寫數據時先寫到Buffer->Channel;讀則反之
爲NIO塊狀操作提供基礎,數據都按“塊”進行傳輸
一個Buffer代表一“塊”數據
六、NIO-Channel
可從通道中獲取數據也可輸出數據到通道;按“塊” Buffer進行
可併發可異步讀寫數據(但是當數據是有序時,如果使用多線程中間加了其它的數據,可能會導致數據不可用。所以,一般讀是一個線程,寫是一個線程)
讀數據時讀到Buffer,寫數據則必須通過Buffer寫數據
包括:FileChannel、SocketChannel、DatagramChannel等
七、NIO職責
首先,向Selector註冊Channel的可讀、可寫狀態
當客戶端向服務端發送消息,網卡收到消息後,Channel處於可讀狀態,Selector收到通知,Channel收到消息,將數據讀取到Buffer當中