NIO概述

NIO简介
  NIO也叫(New IO)或者(no-blocking io),是jdk1.4后提供的,主要目的是为了提高速度,和我们前面介绍的’内核空间’和’用户空间’相关。是一个可以替代标准Java IO API的新IO API,提供了与标准IO不同的IO工作方式。

NIO和IO的区别
  通过“内核空间”“用户空间”“虚拟内存”等概念的介绍,大家可能会感觉普通IO的性能要差很多,因为要做两次数据复制,其实“旧”的I/O包已经使用NIO重新实现过,即使我们不显式的使用NIO编程,IO的速度也不会很慢。那么专门学习NIO还有必要吗?这我们就要弄清楚IO的场景主要有两个:文件IO和网络IO
  NIO的作用:在网络IO【非阻塞】中就可以体现出来了!具体怎么体现的后面再详细介绍。

IO    NIO
面向流    面向缓冲
阻塞IO    非阻塞IO
无    选择器
Buffer和Channel介绍
  在NIO中并不是以流的方式来处理数据的,而是以buffer缓冲区和Channel管道配合使用来处理数据。

简单理解一下:
  Channel管道比作成铁路,buffer缓冲区比作成火车(运载着货物),而我们的NIO就是通过Channel管道运输着存储数据的Buffer缓冲区的来实现数据的处理!要时刻记住:Channel不与数据打交道,它只负责运输数据。与数据打交道的是Buffer缓冲区

角色    特点    说明
buffer    数据    与数据打交道,存取数据
channel    运输    不与数据打交道,它只负责运输存储数据的buffer
  相对于传统IO而言,流是单向的。对于NIO而言,有了Channel管道这个概念,我们的读写都是双向的(铁路上的火车能从深圳去北京、自然就能从北京返还到深圳)
--------------------- 
作者:波波烤鸭 
来源:CSDN 
原文:https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89175482 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值