博爲峯Java技術題 ——JavaSE Java NIO Ⅳ

博爲峯小博老師:函數

[緩衝區Buffer]code

一個Buffer對象是固定數量的數據的容器。其做用是一個存儲器,或者分段運輸區,在這裏數據可被存儲並在以後用於檢索。儘管緩衝區做用於它們存儲的原始數據類型,但緩衝區十分傾向於處理字節。非字節緩衝區能夠在後臺執行從字節或到字節的轉換,這取決於緩衝區是如何建立的。對象

緩衝區的工做與通道緊密聯繫。通道是 I/O 傳輸發生時經過的入口,而緩衝區是這些數據傳輸的來源或目標。對於離開緩衝區的傳輸,您想傳遞出去的數據被置於一個緩衝區,被傳送到通道。對於傳回緩衝區的傳輸,一個通道將數據放置在您所提供的緩衝區中。這種在協同對象(一般是您所寫的對象以及一到多個 Channel 對象)之間進行的緩衝區數據傳遞是高效數據處理的關鍵。blog

如下是一個新建立的ByteBuffer:索引

位置被設爲 0,並且容量和上界被設爲 10,恰好通過緩衝區可以容納的最後一個字節。標記最初未定義。容量是固定的,但另外的三個屬性能夠在使用緩衝區時改變。ip

其中的四個屬性的含義分別以下:ci

l 容量(Capacity):緩衝區可以容納的數據元素的最大數量。這一個容量在緩衝區建立時被設定,而且永遠不能改變。get

l 上界(Limit):緩衝區的第一個不能被讀或寫的元素。或者說,緩衝區中現存元素的計數。it

l 位置(Position):下一個要被讀或寫的元素的索引。位置會自動由相應的 get( )和 put( )函數更新。io

l 標記(Mark):下一個要被讀或寫的元素的索引。位置會自動由相應的 get( )和 put( )函數更新。

相關文章
相關標籤/搜索