Java_NIO總結

 

nio包中主要經過下面兩個方面來提升I/O操做效率:異步

 

* 經過Buffer和Channel來提升I/O操做的速度。編碼

 

* 經過Selector來支持非阻塞I/O操做。spa

 

Channel and Buffer

Channel 和 buffer 是 NIO 是兩個最基本的數據類型抽象。3d

Buffer:對象

  是一塊連續的內存塊。blog

  是 NIO 數據讀或寫的中轉地。接口

Channel:內存

  數據的源頭或者數據的目的地io

  用於向 buffer 提供數據或者讀取 buffer 數據 ,buffer 對象的惟一接口。效率

  異步 I/O 支持

  

  示例代碼:

  

 

Buffer 內部結構

  

  

  

 

Charset

  向 ByteBuffer 中存放數據時須要考慮字符集的編碼(char-->byte)方式,讀取展現 ByteBuffer 數據時涉及對字符集解碼(byte-->char)。

  Java.nio.charset 提供了編碼解碼一套解決方案。

  以咱們最多見的 http 請求爲例,在請求的時候必須對請求進行正確的編碼。在獲得響應時必須對響應進行正確的解碼。

   

相關文章
相關標籤/搜索