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