一.IO和NIO对比,io可以把数据传输通道理解成水管,没有缓冲区概念,数据理解成 水
nio可以把数据传输通道理解成铁路,缓冲区理解成火车,数据理解成货物
IO | NIO |
面向流 | 面向缓冲区 |
阻塞 | 非阻塞IO |
选择器 |
二、NIO一些概念
1.缓冲区
①除了boolean类型外,其他数据类型都提供了相应的缓冲区,如:byteBuffer、IntBuffer,这些缓冲区的管理方法几乎一致,通过allocate() 获取缓冲区
②缓冲区存取数据的两大方法:put():存入数据到缓冲区 get():从缓冲区获取数据
③缓冲区的四个核心属性:capacity 容量 表示缓冲区大小,一旦声明不能改变
limit 界限 表示缓冲区中可以操作数据的大小,limit后数据不能进行读写
position 位置 表示缓冲区正在操作的数据的位置
capacity 》 limit 》 position
④clear()方法可以使capacity limit position 这三个处于初始状态,对外显示为清空缓冲区,但实际缓冲区数据并没被删除