[size=large][align=center]buffer原始碼解析[/align][/size]
/**
* 乙個特定基元型別資料的容器。
* 緩衝器是乙個特定的線性、有限的元素序列的原始型別。除了內容之外,。
* 緩衝區的基本屬性是其容量(capacity)、限制(limit)和位置(position)。
** capacity:緩衝區的容量是它包含的元素的數量。緩衝區的容量從不為負,也從不改變。
* limit:緩衝區的limit是應該的第乙個元素的索引。也從不為負,小於其capacity。
* position:緩衝區的位置是下乙個元素的索引。從不為負,小於它的limit。
** 每個非布林基元型別都有這個類的乙個子類。
* 包括(bytebuffer,charbuffer,shortbuffer,intbuffer,longbuffer,floatbuffer,doublebuffer)
** 這個類的每個子類定義了兩個類別的get和put操作,
* * 緩衝區是執行緒不安全,可由多個併發執行緒使用。如果乙個緩衝區將被多個執行緒使用,然後訪問緩衝區。
* 應該通過適當的同步來控制。
* */
public abstract class buffer
}//返回該緩衝區的容量
public final int capacity()
//返回該緩衝區的位置
public final int position()
/*** 設定此緩衝區的位置。如果標記被定義並且大於新的位置然後被丟棄
* 新位置:必須是非負數且不大於當前的限制
*/public final buffer position(int newposition)
//返回該緩衝區的限制
public final int limit()
public final buffer limit(int newlimit)
//在其位置設定此緩衝區的標記
public final buffer mark()
//將此緩衝區的位置重置為先前標記的位置。呼叫此方法既不更改也不丟棄標記的值
public final buffer reset()
//清除快取區,恢復預設值,將limit值定為capacity的值
public final buffer clear()
//重置快取區,limit=position(上次寫到的位置),position=0(重置為0)
//也可以認為,是將buffer的寫模式,換成讀模式,從陣列起始處開始讀
public final buffer flip()
public final buffer rewind()
//返回當前位置和限制之間的元素個數。
//如果快取區中的資料已經被全部讀取完畢,limit-position=0
public final int remaining()
//說明當前位置和極限之間是否存在任何元素。若有,返回為true
public final boolean hasremaining()
public abstract boolean isreadonly();
//說明該緩衝區是否由可訪問陣列支援。
public abstract boolean hasarray();
public abstract object array();
public abstract int arrayoffset();
//快取區是否為直接值
public abstract boolean isdirect();
}
Fabric 原始碼解析 原始碼目錄解析
這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...
Spring原始碼解析之 Aop原始碼解析(2)
spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...
muduo原始碼閱讀(四) Buffer的設計
muduo的圖示 muduo的io模型採用的是阻塞式的,因此執行緒只能阻塞在 seletc poll epoll wait 當中,而不能阻塞的write read函式中,這麼一來,應用層的緩衝是必須的。每乙個tcp socket都要配備乙個input buffer和乙個 output buffer。...