NIO:

缓冲区:

在NIO库中,所有的数据都是用缓冲区处理的,在读取数据时,它是直接读到缓冲区的,在写入数据时,它是写入到缓冲区的,任何时候访问NIO中的数据,你都是将它放到缓冲区中。

缓冲区实质上是一个数组,通常它是一个字节数组,但是也可以使用其他种类的数组,但是一个缓冲区不仅仅是一个数组,缓冲区提供了对数据的结构化访问,而且还可以跟踪系统的读写进程

缓冲区类型:

最常用的缓冲区类型是ByteBuffer。一个ByteBuffer可以在其底层字节数组上进行get/set操作(即字节的获取和设置)。ByteBuffer不是NIO中唯一的缓冲区类型,事实上,对于每一种基本java类型都有一种缓冲区类型

相关代码

public class Test14 {public static void main(String[] args) {//创建一个字节缓冲区,申请内存空间为8个字节ByteBuffer buf = ByteBuffer.allocate(10);System.out.println("position=" + buf.position());//0System.out.println("limit=" + buf.limit());//10System.out.println("capacity=" + buf.capacity());//10System.out.println("-------------------");// 向缓冲区中写入数据buf.put((byte) 12);buf.put((byte) 13);buf.put("lalla".getBytes());System.out.println("position=" + buf.position());//7System.out.println("limit=" + buf.limit());//10System.out.println("capacity=" + buf.capacity());//10System.out.println("-------------------");//缓冲区反转buf.flip();System.out.println("position=" + buf.position());//0System.out.println("limit=" + buf.limit());//7System.out.println("capacity=" + buf.capacity());//10// 告知当前位置和标记位置是否有元素if (buf.hasRemaining()) {for (int i = 0; i < buf.remaining(); i++) {System.out.println(buf.get(i));}}}
}

NIO的基本概念和缓冲区相关推荐

  1. NIO学习–核心概念与基本读写

    转载自 NIO学习–核心概念与基本读写 这两天花了时间学习了java的nio,看的书是Ron Hitchens著的 <Java NIO>,总的来说,这本书真的写的非常好,而且整本书将jav ...

  2. buffer java nio_Java NIO深入理解Buffer(缓冲区)

    前言 Github:https://github.com/yihonglei/java-all Project:java-nio 一 Buffer概述 Java NIO中的Buffer用于和NIO通道 ...

  3. 【Netty】NIO 选择器 ( Selector ) 通道 ( Channel ) 缓冲区 ( Buffer ) 网络通信案例

    文章目录 I . NIO 通信 服务器端 流程说明 II . NIO 通信 服务器端代码 III . NIO 通信 客户端 流程说明 IV . NIO 通信 客户端代码 V . NIO 通信 示例运行 ...

  4. 【Java 网络编程】NIO Buffer 简介 ( 概念 | 数据传输 | 标记 | 位置 | 限制 | 容量 | 标记 | 重置 | 清除 | 翻转 | 重绕 | 链式操作 )

    文章目录 I. Buffer 简介 II. Buffer 属性 III. Buffer 数据读写 IV. Buffer 标记 mark() 和重置 reset() V. Buffer 清除 翻转 重绕 ...

  5. JAVA NIO知识点总结(2)——直接缓冲区和非直接缓冲区

    2019独角兽企业重金招聘Python工程师标准>>> 前面我们一直说NIO能够提高性能,那么到底如何提高效率.本篇就接着上一篇文章的缓冲区,来看看直接缓冲区和非直接缓冲区. 非直接 ...

  6. io和nio的缓冲_IO与NIO –中断,超时和缓冲区

    io和nio的缓冲 假设有一个系统有时需要将文件复制到几个位置,但是这种方式在响应能力至关重要的情况下. 换句话说,如果由于某种原因文件系统过载,而我们无法在不到一秒钟的时间内写入文件,它应该放弃. ...

  7. IO与NIO –中断,超时和缓冲区

    假设有一个系统有时需要将文件复制到几个位置,但是这种方式在响应速度至关重要的情况下. 换句话说,如果由于某种原因文件系统过载,并且我们无法在不到一秒钟的时间内写入文件,则应该放弃. ExecutorS ...

  8. Java NIO学习篇之直接缓冲区和非直接缓冲区

    定义 以上是书深入理解java虚拟机对直接内存的描述.直接缓冲区用的就是直接内存. java nio字节缓冲区要么是直接的,要么是非直接的.如果为直接字节缓冲区,则java虚拟机会尽最大努力直接在此缓 ...

  9. 【Netty】NIO 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 操作

    文章目录 I . 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 概念 II . 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathe ...

  10. 【Netty】NIO 缓冲区 ( Buffer ) 组件

    文章目录 I . NIO 三大核心组件 对应关系 II . 缓冲区 ( Buffer ) 类 III . 缓冲区 ( Buffer ) 机制 IV . 缓冲区 ( Buffer ) 机制 示例解析 V ...

最新文章

  1. 如何修复GIT错误:目标文件为空?
  2. 触发器使用教程和命名规范
  3. 二分查找 —— 从三分支到二分支
  4. 「新手向」koa2从起步到填坑
  5. ffmpeg文档1:制作屏幕录像
  6. Hutool - 身份证验证及其信息解读封装
  7. php聊天室发送表情,聊天室技术(六)-- 表情和动作_PHP
  8. iOS修改生成的APP名称
  9. DASH NET(网速控制,可变)
  10. 【C/C++基础进阶系列】C/C++ STL -- 智能指针
  11. Sh.k6p index.php,第二篇:shell基础命令(部分)
  12. bootstrap柱状图
  13. 2022年最新广播电视广告报价(共23份)
  14. 简单个人网页设计作业 静态HTML个人博客主页——HTML+CSS+JavaScript 明星鹿晗(7页)
  15. SDM660 xbl阶段使能I2C 设备实现
  16. 另类方法申请google adsense账号
  17. JAVA JSP javaweb 火车订票系统(订票系统 火车票预订系统
  18. Unity Shader标准光照模型——高光反射
  19. 路由器自动ip服务器无响应,路由器无法自动分配IP地址原因及解决方法
  20. freetype的简单使用

热门文章

  1. POJ 1127_Jack Straws
  2. redis 备份与恢复
  3. 点点滴滴——变量对象的产生
  4. API 函数 MultiByteToWideChar 实现各类编码转换
  5. 数据库索引是什么,它的作用是什么?
  6. Oracle分组合并数据的方法总结 wm_concat() 和 listagg()
  7. Redis的高级应用-安全性和主从复制
  8. 《SilverLight2快速入门》之Hello SilverLight
  9. Educational Codeforces Round 20 C. Maximal GCD
  10. hibernate的一级缓存问题