華文網

尚學堂java學習筆記:屬性

有的緩衝區都具有四個屬性來提供關於其所包含的資料元素的資訊。它們是:

容量(Capacity)

緩衝區能夠容納的資料元素的最大數量。這一容量在緩衝區創建時被設定,並且永遠不能被改變。

上界(Limit)

緩衝區的第一個不能被讀或寫的元素。或者說,緩衝區中現存元素的計數。

位置(Position)

下一個要被讀或寫的元素的索引。位置會自動由相應的 get( )和 put( )方法更新。

標記(Mark)

一個備忘位置。調用 mark( )來設定 mark = postion。調用 reset( )設定 position = mark。標記在設定前是未定義的(undefined)。

這四個屬性之間總是遵循以下關係:

一個備忘位置。調用 mark( )來設定 mark = postion。調用 reset( )設定 position = mark。標記在設定前是未定義的(undefined)。

這四個屬性之間總是遵循以下關係:

0 <= mark <= position <= limit <= capacity

讓我們來看看這些屬性在實際應用中的一些例子。圖 2-2 展示了一個新創建的容量為 10的 ByteBuffer 邏輯視圖。

圖 2-2. 新創建的 ByteBuffer(1)

位置被設為 0,而且容量和上界被設為 10,

剛好經過緩衝區能夠容納的最後一個位元組。標記最初未定義。容量是固定的,但另外的三個屬性可以在使用緩衝區時改變。