在緩沖區中,最重要的屬性有下面三個,它們一起合作完成對緩沖區内部狀态的變化跟蹤:
capacity
position
limit
position和limit的含義取決于Buffer處在讀模式還是寫模式。不管Buffer處在什麼模式,capacity的含義總是一樣的。
這裡有一個關于capacity,position和limit在讀寫模式中的說明,詳細的解釋在插圖後面。

作為一個記憶體塊,Buffer有一個固定的大小值,也叫“capacity”.你隻能往裡寫capacity個byte、long,char等類型。一旦Buffer滿了,需要将其清空(通過讀資料或者清除資料)才能繼續寫資料往裡寫資料。
當你寫資料到Buffer中時,position表示目前的位置。初始的position值為0.當一個byte、long等資料寫到Buffer後, position會向前移動到下一個可插入資料的Buffer單元。position最大可為capacity – 1.
當讀取資料時,也是從某個特定位置讀。 當從Buffer的position處讀取資料時,position向前移動到下一個可讀的位置。
在寫模式下,Buffer的limit表示你最多能往Buffer裡寫多少資料。 寫模式下,limit等于Buffer的capacity。
當切換Buffer到讀模式時, limit表示你最多能讀到多少資料。是以,當切換Buffer到讀模式時,limit會被設定成寫模式下的position值。換句話說,你能讀到之前寫入的所有資料(limit被設定成已寫資料的數量,這個值在寫模式下就是position)