Fork me on GitHub

nio

一、缓冲区建立

  • 管理方式,通过allocate()获取缓冲区

二、缓冲区存取数据的两个核心方法:

  • put() : 存入数据到缓冲区中
  • get() : 获取缓冲区中的数据

三、缓冲区中的四个核心属性:

  1. capactiy: 容量,表示缓冲区中最大存储数据的容量。一段声明不能改变。
  2. limit: 界限,表示缓冲区中可以操作数据的大小。(limit 后的数据不能进行读写)
  3. position: 位置,表示缓冲区中正在操作数据的位置。
  4. mark:标记,表示当前position的位置。可以通过reset() 恢复到mark的位置。
  • mark <= position <= limit <= capacity

通道(channel) :用于源节点与目标节点的链接。负责缓冲区中数据的传输。Channel不存储数据,需要与缓冲区配合传输数据

  • 通道的实现类
  1. FileChannel
  2. SocketChannel
  3. ServerSocketChannel
  4. DatagramChannel

直接缓存区操作文件

分算和聚集

posted @ 2019-08-18 15:48  一个BUG难搞啊  阅读(127)  评论(0编辑  收藏  举报