Java NIO 总结

一、Java NIO与标准IO的区别
1、channels和buffer,标注IO基于字节流和字符流操作,NIO基于通道和缓存操作
2、异步IO,NIO支持异步操作,标准IO只能同步操作
3、Selector,NIO的选择器可以监听多个通道

二、Java NIO由Channel和Buffers和Selectors几个核心部分组成
Channel实现FileChannel、DatagramChannel、SocketChannel、ServerSocketChannel
Buffer实现ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer、ShortBuffer
Selector用于减少线程,线程越多,线程总体的上下文切换开销就越大,处理效率越低。Selector监听4中事件,读、写、接收、连接。

三、Java NIO使用场合,连接数多,这些连接每次发送少量数据
标准IO适用场合,连接数少,连接每次发生大量数据

四、Buffer的flip方法从写模式切换到读模式,clear方法清空整个缓冲区,compact方法清理已经读过的数据。buffer本质上是一块可以写入/读取数据的内存,buffer属性capacity、position、limit。capacity表示buffer的最大容量,position在写模式下表示从当前位置开始写,在读模式下表示开始读的位置,从写操作切换读操作position重置0。limit在写模式下等于capacity,在读模式下表示从缓存中最多能读到多少数据。

五、分散(Scatter)和聚集(Gather),分散:读模式下,一个通道对应多个缓存。聚集:写模式下,多个缓存对应一个通道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值