java緩衝區

1 緩衝區的分類 ByteBufferjvm

CharBuffer大數據

ShortBuffercdn

IntBuffer索引

LongBufferip

FloatBuffer內存

DoubleBufferci

2 ByteBuffer讀取數據的操做 容量(capacity):表示Buffer最大數據容量,緩衝區容量不能爲負,而且創建後不能修改。 限制(limit): 位於limit後的數據不能夠讀寫。緩衝區的限制不能爲負,而且不能大於其容量(capacity)。 位置(position):下一個要讀取或寫入的數據的索引。緩衝區的位置不能爲負,而且不能大於其限制(limit)。 標記(mark)與重置(reset):標記是一個索引,經過Buffer中的mark()方法指定Buffer中一個特定的position,以後能夠經過調用reset()方法恢復到這個position。get

3 ByteBuffer經常使用的操做it

put給緩衝區添加數據io

get()從緩衝區獲取數據

flip();開啓讀模式

mark 添加標記

reset 恢復到mark的位置

clear 初始化3

4 直接緩衝區與非直接緩衝區 非直接緩衝區:經過 allocate() 方法分配緩衝區,將緩衝區創建在 JVM 的內存中 (通過物理內存到jvm內存的數據拷貝,效率低) 直接緩衝區:經過 allocateDirect() 方法分配直接緩衝區,將緩衝區創建在物理內存中。能夠提升效率 (零拷貝,效率高)

5 Channel(管道) 通道表示打開到 IO 設備(例如:文件、套接字)的鏈接 Channel 負責傳輸數據, Buffer 負責存儲數據 channel相似與傳統io的流,只不過流是單向的,channel是雙向的

6 Channel的分類

FileChannel

SocketChannel

ServerSocketChannel

DatagramChannel

有須要Java資料的能夠加我

相關文章
相關標籤/搜索