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

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);

8d553-201904170841211.png

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

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

69a5b-201904170841212.png

54d88-201904170841213.png

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

3c860-201904170841224.png

42a21-201904170841225.png

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

position<=limit<=capacity

43f9e-201904170841226.png

77a78-201904170841227.png

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());

f08d7-201904170841228.png

64a22-201904170841229.png

7fed9-2019041708412210.png

6、ByteBuffer的基本使用。

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

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

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

3034e-2019041708412211.png

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

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

59c7b-2019041708412212.png

f283c-2019041708412213.png

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

1c651-2019041708412314.png

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

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

37909-2019041708412315.png

ed4c4-2019041708412316.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 循环体 如何测试_mysql里如何循环插入数据,进行测试

比如从现在开始一直循环到后年&#xff0c;比如设置8根管线&#xff0c;一直循环下去进行数据叠加&#xff0c;下面是C#代码&#xff0c;不知道怎么写下去了private void button1_Click(object sender, EventArgs e){connectionString “SERVER” server “;” “DATABASE”…

mysql的安装备份恢复_安装使用Percona XtraBackup来备份恢复MySQL的教程

1.安装XtraBackupyum的安装方法&#xff1a;自动$ rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm然后会看到&#xff1a;Retrieving http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpmPrepa…

屏幕尺寸

屏幕尺寸分析 <!DOCTYPE html> <script src"js/jquery-1.11.3.js" type"text/javascript"></script> <html> <head><title>aaa</title><style>body{margin:10px;padding:10px;border:10px solid #000;}&l…

java while do_java中while和do-while的总结

主要内容&#xff1a;1、while循环在程序中的应用2、do-while循环在程序中的应用3、循环结构与判断结构相互嵌套----------------------------------------------------------------------------------------------一、while语法&#xff1b;while(循环条件){循环体}代码演示&a…

scrollWidth,clientWidth,offsetWidth的区别

通过一个demo测试这三个属性的差别。 说明&#xff1a; scrollWidth&#xff1a;对象的实际内容的宽度&#xff0c;不包边线宽度&#xff0c;会随对象中内容超过可视区后而变大。 clientWidth&#xff1a;对象内容的可视区的宽度&#xff0c;不包滚动条等边线&#xff0c;会随对…

java spring包_java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式...

java 自定义加载器&#xff0c;加载spring包&#xff0c;动态加载实现&#xff0c;jar包隔离&#xff0c;tomcat加载webapp方式发布时间&#xff1a;2018-08-20 12:02,浏览次数&#xff1a;774, 标签&#xff1a;javaspringjartomcatwebapp加载器加载的是配置好classpath路径上…

C#递归、动态规划计算斐波那契数列

//递归public static long recurFib(int num){if (num < 2){return num;}else{return recurFib(num - 1) recurFib(num - 2);}}//动态规划public static long dynFib(int num){int[] nums new int[num];for (int i 0; i < num; i){nums[i] 0;}if (num 1 || num 2){…

java随机产生十个坐标_java中随机坐标

你的问题有两个&#xff1a;1、出现的位置不允许再出现2、当所有的位置都为1的时候&#xff0c;程序完成(地鼠已经去过所有的地洞&#xff0c;而且没有重复)。如果你的问题是这样的话&#xff0c;答案如下&#xff1a;整个的思路&#xff1a;有一个地鼠类&#xff0c;地鼠类里面…

java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...

德州扑克中比较重要的一个算法就是计算牌面的得分&#xff0c;不仅仅关乎概率计算的结果&#xff0c;同时也需要很高的性能。蒙特卡洛算法计算的次数越多结果越准确&#xff0c;因此算法的性能至关重要。下面是一个高性能的牌面java计算算法。参数介绍&#xff1a;1)cards 需要…

ubuntu14.04 upgrade出现【Ubuntu is running in low-graphics mode】问题的一个解决办法

在ubuntu14.04上安装docker的时候&#xff0c;由于眼花没看清下图这句话&#xff1a; 直接执行了sudo apt-get upgrade命令。然后发生了一个悲剧&#xff01; 重启后出现下面这个错误&#xff01; 而且在点击OK进入下一步后&#xff0c;再也无法选中其他的配置选项……当时我就…

java 类及对象的课后作业_JAVA类和对象课后作业

1.使用类的静态字段和构造函数&#xff0c;我们可以跟踪某个类所创建对象的个数。请写一个类&#xff0c;在任何时候都可以向它查询“你已经创建了多少个对象&#xff1f;”代码&#xff1a;//显示类//YiMingLai 2016.10.19public class lei {/*** param args*/public static v…

正则表达式二探

什么是正则表达式。 简单说就是按照某种规则匹配符合条件的字符串。 通配符&#xff1a;* https://regexper.com/在线测试正则表达网址。 转载于:https://www.cnblogs.com/tuoxiong/p/6148037.html

java 怎么用 string method return数量_java教程之Map应该怎么用

java教程之Map应该怎么用在自学或者看java教程的时候&#xff0c;大家多多少少都存在着这样或者那样的疑惑&#xff0c;对于这些中软国际小编一直也在整理&#xff0c;今天为大家献上的是关于Map应该怎样去用的一些方法&#xff0c;还是跟过去一样&#xff0c;在这里&#xff0…

使用 ExecuteMultiple 提高批量数据加载的性能

您可以使用 ExecuteMultipleRequest 消息在 Microsoft Dynamics CRM Online 2016 Update 和 Microsoft Dynamics CRM 2016&#xff08;本地&#xff09; 中&#xff08;尤其在 Internet 延迟可能是最大限制因素的 Microsoft Dynamics CRM Online 中&#xff09;支持更高吞吐批量…

安装ODIS报错 java_(实用技术)大众奥迪ODIS常见问题处理方法

我们在平时使用ODIS过程中常常会遇到一下问题&#xff0c;导致我们不知道应该怎么处理。今天这篇文章中我们将陈列一些常见的问题解答&#xff0c;希望对大家有帮助。一、BCM(BFM)的引导型功能不能用解决方案如果桑塔纳&#xff0c;Rapid&#xff0c;新polo等车型遇到BCM(BFM)的…

gulp入坑系列(1)——安装gulp

前言 好吧&#xff0c;我承认我是为了搞定Sass编译CSS文件的问题&#xff0c;迷一样的着手入gulp的坑&#xff0c;sass和gulp的爬坑历程大概会一起更新。然后感觉这里windows和mac的流程差不多&#xff0c;不过mac的通常在指令前加sudo &#xff0c;本喵是windows的本本&#x…

java中的sql语句书写_Java中sql语句之通配符*

在java中执行SQL语句要特别注意通配符的问题&#xff0c;否则是不会成功的&#xff1a;在ACCESS中的通配符是*例&#xff1a;select * from student where name like 张*在标准的SQL语言中的通配符是%例&#xff1a;select * from student where name like 张%在java…

Oracle 数据库中对记录进行分页处理

学习到 oracle 的视图的时候&#xff0c;了解到对 Oracle 中数据的记录进行分页处理和 Mysql 提供的 limit 来进行分页处理大有不同&#xff0c;limit 是 mysql 中特有的关键字。 那么在 oracle 中如何实现对记录的分页处理呢&#xff1f; 解决办法&#xff1a;使用 ROWNUM 1.…

python中split啥意思_python中split的用法详解_后端开发

如何用python正则表达式匹配字符串&#xff1f;_后端开发用python正则表达式匹配字符串的方法&#xff1a;1、当匹配单个位置的字符串时&#xff0c;可以使用【(.?)】正则表达式来提取&#xff1b;2、当连续多个位置的字符串匹配时&#xff0c;可以使用【?P…】这个正则表达式…

sublimeText OmniMarkupPreviewer 404

这个错误也是出现的莫名奇妙。 "Error: 404 Not Found Sorry, the requested URL http://127.0.0.1:51004/view/29 caused an error:buffer_id(29) is not valid (closed or unsupported file format)NOTE: If you run multiple instances of Sublime Text, you may want …