一、理解類中的mark、position、limit、capacity關係
mark <= position <= limit <= capacity
bytebuffer buffer = bytebuffer.allocate(10); //mark=-1,position=0,limit=capactiy=10
不管是讀取(get)還是寫入(put)都會使得position加1
1、所以在讀取資料的時候要filp(),重新設定limit=position,position=0;mark=-1;
2、如果讀取過一次,想重新在讀取,必須要rewind(),重新設定position=0;mark=-1;會清除標誌
3、寫入的時候一定要注意當前position的位置。
ByteBuffer緩衝區的三種建立方式與解讀
位元組緩衝區分為直接位元組緩衝區與非直接位元組緩衝區。bytebuffer buffer1 bytebuffer.allocate 10 allocate 方法的作用 底層api public static bytebuffer allocate int capacity class heapbyt...
Sentinel中容錯實現方式
之前的文章寫了sentinel的整合使用方式,這篇文章具體寫一下它的容錯實現。1.保證自己不被上有伺服器壓垮 2.保證自己不被下游伺服器拖垮 3.保證外界環境良好 sentinel的主要功能就是容錯。主要體驗在三個方面 流量控制 任意時間到來的請求是隨機不可控的,但是服務的處理能力有限,sentin...
C STL中set底層實現方式
q stl中set底層實現方式?為什麼不用hash?a 第乙個問題 set底層實現方式為rb樹 即紅黑樹 第二個問題 首先set,不像map那樣是key value對,它的key與value是相同的。關於set有兩種說法,第乙個是stl中的set,用的是紅黑樹 第二個是hash set,底層用得是h...