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”…

屏幕尺寸

屏幕尺寸分析 <!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…

scrollWidth,clientWidth,offsetWidth的区别

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

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…

安装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…

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

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

spring定时器,定时器一次执行两次的问题

Spring 定时器 方法一&#xff1a;注解形式 配置文件头加上如下&#xff1a; xmlns:task"http://www.springframework.org/schema/task"http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd 需要 quartz 包 &l…

SQLite For .Net 已经整合了32位和64位

以前引用SQLite.DLL的时候&#xff0c;如果是winform等桌面程序&#xff0c;还要分32位和64位不一样的DLL&#xff0c;但最近已经整合为一个包了 打开vs的程序包管理器控制器&#xff0c;输入&#xff1a; install-package system.data.sqlite 自动安装即可。 转载于:https:/…

Java名字的由来

Java语言的历程丰富多彩&#xff0c;被现在众多程序员和企业广泛使用&#xff0c;不用质疑这是Java的领先技术的结果。 Java是Sun公司开发的一种编程语言&#xff0c;Sun公司最初的方向是让Java来开发一些电器装置程序&#xff0c;如&#xff1a;机顶盒、公交卡&#xff0c;Sun…

java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)

Socket是Java网络编程的基础&#xff0c;了解还是有好处的&#xff0c;这篇文章主要讲解Socket的基础编程。Socket用在哪呢&#xff0c;主要用在进程间&#xff0c;网络间通信。本篇比较长&#xff0c;特别做了个目录&#xff1a;一、Socket通信基本示例这种模式是基础&#xf…

php钓鱼怎么使用方法,盘钩使用方法

中钓网资深钓友为大家分享盘钩的使用方法&#xff0c;很难跑鱼的钓鱼新武器——盘钩。盘钩&#xff0c;老瞿最新专利&#xff0c;刚刚开发出来。经过两年的实践&#xff0c;效果大大地好&#xff0c;钩子多&#xff0c;吃进去&#xff0c;要吐出来就难了。管它什么鱼&#xff0…

SQL Server-聚焦APPLY运算符(二十七)

前言 其实有些新的特性在SQL Server早就已经出现过&#xff0c;但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的&#xff0c;其实利用新的SQL Server语法会更加方便和简洁&#xff0c;从本节开始我们将讲述一些SQL Server中早已出现的新语法&#xf…

vs2013和vs2010的配置

win10下vs2013和vs2010的相关配置 ------made by siwuxie095 主要是推荐一些vs2013和vs2010的好用的插件和配色方案&#xff0c;下面主要是以vs2013示例 1、首先是配色方案&#xff0c;一般情况下安装好了IDE之后&#xff0c;为了护眼&#xff0c;都是直接调成了暗色调或深色…

Linux用户与“最小权限”原则

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 作为一个Linux用户来说&#xff0c;我们并不需要特别关心下面的机制。但是&#xff0c;当我们去编写一个Linux应用程序的时候&#xff0c;就要注…

js urlencode 20 php,js实现php函数urlencode

本文介绍了php函数urlencode的js实现方法并比较js和php各编码函数的区别。 通常form表单的enctype类型为 application/x-www-form-urlencoded, 当表单提交后&#xff0c;提交的数据自动被编码&#xff0c; 规则为 除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两…

.NET CORE在ubuntu1604上运行

本文主要描述.NET CORE在Ubuntu上“自包含应用”不一来.NET SDK发布&#xff08;类似于golang的方式&#xff09; 1.用rider或者直接用dotnet new方式创建一个项目&#xff1b;可以看到产生了两个文件 dotnet new 会创建一个最新的 project.json 文件&#xff0c;其中包含生成控…

php代码审计靶场,代码审计 | Wavsep靶场审计防御

—————— 昨日回顾 ——————红日安全出品|转载请注明来源文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用&#xff0c;任何人不得将其用于非法用途以及盈利等目的&#xff0c;否则后果自行承担&#xff01;(来源&#xff1a;红日安全)—————— ——…

Python 爬虫抓取代理IP,并检测联通性

帮朋友抓了一些代理IP&#xff0c;并根据测试联的通性&#xff0c;放在了不通的文件夹下。特将源码分享 注意&#xff1a; 1&#xff0c;环境Python3.5 2&#xff0c;安装BeautifulSoup4 requests 代码如下: 123456789101112131415161718192021222324252627282930313233343536…