【DAY25】NIO的學習筆記

NIO:New IO

-----------------

1.ByteBuffer

allocate: 堆分配

allocateDirect  : 直接分配. 

Channel:  

mark <= position: <= limit <= capacity

flip(): 拍板. limit = position ; position = 0 ;

clear(): limit = capactiy | position = 0 | mark = -1;

rewind(): 重來,pos = 0 , mark = - 1;

slice(): HeapByteBuffer(實現),構造新的ByteBuffer,操縱同一數組,各項參數做了不同解釋。

                將原來的remaining部分整體遷移。

        切片byte[] buf,int mark, int pos, int lim,                 int cap,                           (hb,             -1,        0,        this.remaining(),this.remaining();

compact(): 整理房間。


MappedByteBuffer//映射的字節緩衝區

-----------------------------------------

1.FileChannel.map(mode,pos,length)


selector : 

------------------

1.內部維護三個SelectionKey集合

a.所有註冊的Channel對應的key集合.

b.selectionKeys,挑選出來的發生了感興趣事件key集合。

c.cancelledKeys,刪除的key集合。

2.selector.select()

阻塞模式,只有返回值 >= 1才返回。

挑選發生感興趣事件的key放到seletionKeys集合中,不會刪除原有的key。

需要開發人員手動刪除selectionKey。


jconsole

------------

heap//堆,年輕代(eden區 + 倖存區(倖存一區 + 倖存二區)) + 年老代   --->JVM

non-heap//非堆,方法區(metaspace + code cache + compressed class space) , 永久代 --           >JVM


直接字節緩衝區

--------------

DirectByteBuffer//jvm之外,OS


殺死進程

--------------

1.windows

taskkill 

kill

2.linux

kill



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章