Java_NIO总结

 

nio包中主要通过下面两个方面来提高I/O操作效率:

 

* 通过Buffer和Channel来提高I/O操作的速度。

 

* 通过Selector来支持非阻塞I/O操作。

 

Channel and Buffer

Channel 和 buffer 是 NIO 是两个最基本的数据类型抽象。

Buffer:

  是一块连续的内存块。

  是 NIO 数据读或写的中转地。

Channel:

  数据的源头或者数据的目的地

  用于向 buffer 提供数据或者读取 buffer 数据 ,buffer 对象的唯一接口。

  异步 I/O 支持

  

  示例代码:

  

 

Buffer 内部结构

  

  

  

 

Charset

  向 ByteBuffer 中存放数据时需要考虑字符集的编码(char-->byte)方式,读取展示 ByteBuffer 数据时涉及对字符集解码(byte-->char)。

  Java.nio.charset 提供了编码解码一套解决方案。

  以我们最常见的 http 请求为例,在请求的时候必须对请求进行正确的编码。在得到响应时必须对响应进行正确的解码。

   

 

转载于:https://www.cnblogs.com/mailzyw/p/3360818.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值