首页 > 其他 > 详细

【DAY25】NIO的学习笔记

时间:2016-06-27 00:15:29      阅读:284      评论:0      收藏:0      [点我收藏+]

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



【DAY25】NIO的学习笔记

原文:http://yehom.blog.51cto.com/5159116/1793025

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!