NIO初步了解

java中NIO是在java1.4之后出现的java的api中,它可以代替IO;

java中有两套NIO:其中一套是标准的NIO,另一套是网络NIO;标准的NIO的核心对象是通道Channel与缓冲Buffer,网络NIO中的核心对象比标准的多了一个选择器Selector;

NIO与IO的区别:

1.IO是基于字节流和字符流的操作;而NIO是基于通道Channel和缓冲Buffer的操作,数据总是从通道读到缓冲,或者由缓冲写入通道中.

2. IO是以流的方式处理数据,而NIO是以块的方式处理数据;面向流的处理一次输入流产生一个字节,一次输出流消耗一个字节,为流式数据创建过滤器比较容易;面向块的处理一次产生或者消耗一个块,按块操作比按流操作快;

3.IO流是单向的,他只能从输入流到输出流;NIO是双向的,他总是从Channel读到Buffer,或者缓冲Buffer写到通道,即Channel是通过Buffer来读写数据的.

4.Java NIO可以让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似.

 

Channel是对原IO中的流的模拟,任何来源和目的的数据都必须通过一个Channel对象,一个Buffer实质上是一个容器对象,发给Channel的所有对象都必须先存放到BUffer中;同样,从Channel中读取数据都要读到buffer中

 

 

NIO的具体使用将在后面的博文中介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值