java8新特性NIO缓冲区(Buffer)的数据存储。

ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,

DoubleBuffer.

1、缓冲区在java nio中负责数据的存储。缓冲区就是数组。用于存储不同数据类型的数据。根据数据类型不同(boolean除外),提供了相应类型的缓冲区。

ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,

DoubleBuffer.

上述缓冲区的管理方式几乎一致,通过allocate()获取缓冲区。

//分配一个指定大小的缓冲区ByteBuffer byteBuffer = ByteBuffer.allocate(1024);

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

capacity:容量,表示缓冲区中最大存储数据的容量。一旦声明不能改变。

3、limit:界限,表示缓冲区中可以操作数据的大小。(limit后所得数据不能进行读写)。

4、position:位置,表示缓冲区中正在操作数据的位置。

position<=limit<=capacity

5、ByteBuffer的基本使用。

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

put():存入数据到缓冲区

//分配一个指定大小的缓冲区 ByteBuffer byteBuffer = ByteBuffer.allocate(1024); System.out.println(byteBuffer.position()); System.out.println(byteBuffer.limit());; System.out.println(byteBuffer.capacity()); //利用put方法存入数据到缓冲区中 String str = "abcde"; byteBuffer.put(str.getBytes());

6、ByteBuffer的基本使用。

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

get():获取缓冲区的数据

//4、利用get()读取缓冲区的数据 byte[] dst = new byte[byteBuffer.limit()]; byteBuffer.get(dst); System.out.println(new String(dst,0,dst.length));

7、调用flip()读数据模式之后

//3、切换成读取数据模式byteBuffer.flip();

8、调用flip()操作之后:

9、rewind()方法:可重复读:

byteBuffer.rewind(); System.out.println("----------rewind()-------------"); System.out.println(byteBuffer.position()); System.out.println(byteBuffer.limit());; System.out.println(byteBuffer.capacity());

java 缓冲区中的数据存入缓冲区中_java8中NIO缓冲区(Buffer)的数据存储详解|chu...相关推荐

  1. 【数据的存储】浮点数在内存中的存储详解【超详细的保姆级别教程,让面试官心服口服】手撕浮点数存储使用方式

    [数据的存储]浮点数在内存中的存储详解[超详细的保姆级别教程,让面试官对你心服口服]手撕浮点数存储使用方式 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客 ...

  2. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  3. 虚拟化磁盘模式、数据存储详解

    虚拟化磁盘模式.数据存储详解 1. 配置模式 1.1. 普通 1.2. 普通延迟置零 1.3. 精简 2. 磁盘模式 2.1. 从属 2.2. 独立-持久 2.3. 独立-非持久 3. 数据存储 3. ...

  4. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

    直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...

  5. 数据结构-使用哈希存储将数据存入哈希表中,并进行查找

    主函数 #include "./fun.h"int main(int argc, const char *argv[]) {int arr[10] = {25,51,8,22,26 ...

  6. 利用python编写爬虫程序,从招聘网站上爬取数据,将数据存入到MongoDB数据库中,将存入的数据作一定的数据清洗后做数据分析,最后将分析的结果做数据可视化

    教程演示 创建爬虫项目 编写需要爬取的字段(items.py) 编写spider文件(wuyou.py) 编写数据库连接(pipelines.py) 编写反爬措施(settings.py) Mongo ...

  7. Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

    本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换. 文章目录 比较运算 保留精度及取整 取整(保留0位小数) 保留精度 基础运算 BigDe ...

  8. java的友好成员,java面向对象中四种权限(private,protected,public,友好型)详解...

    俗话说没有规矩就没有方圆,java作为一门严谨的面向对象的高级编程语言,自然对权限整个重要的问题有严格的控制. Java一共有四种权限,private (私有),public(公有).Protecte ...

  9. 关于操作系统中进程、线程、死锁、同步、进程间通信(IPC)的超详细详解整理

    ​​​​​​​作者主页:https://www.zhihu.com/people/san-hao-bai-du-ren-79 一.什么是进程?什么是线程? 1.1 进程定义 1.2 线程定义 1.3 ...

最新文章

  1. DataGrid/DataList
  2. HDU3371(最小生成树)
  3. spss聚类分析_SPSS聚类分析 I K均值聚类法案例实操
  4. python print换行_聊聊 print 的前世今生
  5. 在python中嵌入c/c++
  6. 2021 年,Java 开发者值得学习的 13 项技能
  7. 项目管理基础:系统评价相关知识
  8. JAXB –不需要注释
  9. 无线传感器主要应用领域及发展趋势
  10. 有用的Copy-On-write,写时复制
  11. discuz NT!整合
  12. matlab中求方差的,matlab中求方差为什么除以n-1?
  13. python 实例方法 类方法_Python实例方法 静态方法 类方法
  14. 论文笔记——DenseNet
  15. CSS控制文本超出指定宽度显示省略号和文本不换行
  16. Java的安装以及配置
  17. 【JavaSE】黑马程序员 刘意 基础部分笔记
  18. ORACLE11g R2下载地址
  19. java 解密pdf文件,PDFBox加密和解密PDF文件
  20. visio的图在word中空白处太大的问题

热门文章

  1. Android 事件分发,分发机制
  2. Android 6.0及以上版本动态申请权限,11权限
  3. 小程序 上拉刷新 下拉加载 代码备忘
  4. mpvue 小程序 页面跳转获取参数
  5. linux文件基础知识,linux文件系统基础知识
  6. centos7 network网络服务重启报错failed to start lsb
  7. 计算机汇编语言运用哪个进制,运用汇编语言怎样以2进制、8进制、10进制、16进制方式输出10进制的数的计算结果。...
  8. iOS录音后播放声音变小的解决方法
  9. Python学习之路:多态实例
  10. Jython中文乱码问题