ByteBuffer中flip、mark、reset、rewind和clear的作用_bytebuffer rewind-程序员宅基地

技术标签: java  nio  clear  ByteBuffer  

在解释以上方法之前我们需要了解ByteBuffer的几个参数:

  // Invariants: mark <= position <= limit <= capacity
    private int mark = -1;//标记位置,reset时需要
    private int position = 0;//当前读取
    private int limit;//读取的最大位置
    private int capacity;//buffer的容量

下面通过一个最简单的代码来解释,各个过程中上面参数的变化

//初始化一个长度为48的buffer
 ByteBuffer buffer = ByteBuffer.allocate(48);

 

此时 postion:0,limit48,mark:-1,capacity:48。下面的过程主要是postion、limit、mark会变化,capacity是容量不会变化。

  //将数据写入buffer
  buffer.put("123456".getBytes());

写入后ByteBuffer的参数变化如下图: 

 

 此时只有postion发生了变化,变成了6,因为我们写了6个字符。我们写入

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010430495/article/details/86087154

智能推荐

STM32关于USB控制端点4的问题_endp1_txaddr如何定义-程序员宅基地

解释如下:#define BTABLE_ADDRESS (0x00) //说明端点描述符表从0x00开始每个端点描述符会占用4个uint32_t型,即16个字节如果使用到端点4,需要将#define ENDP0_RXADDR (0x18)#define ENDP0_TXADDR (0x58)改为#define ENDP0_RXAD_endp1_txaddr如何定义

辽宁省计算机辅助普通话水平测试应试指南,计算机辅助普通话水平测试应试指南..doc...-程序员宅基地

计算机辅助普通话水平测试应试指南.教 学 工 作 通 讯主办:教务处 2010年第63期 总第63期 日期:2010年9月26日—————————————————————————————————————————计算机辅助普通话水平测试应试指南一、佩戴耳机(如图示)1.应试人就座后请戴上耳机(麦克风戴在左耳),并将话筒置于口腔前方。2.戴好耳机后点击“下一步”按钮。二、应试人登录(如..._辽宁省计算机辅助普通话测试书电子版

yum安装一个软件不知道名字时_教你分分钟搞定Linux下yum源配置-程序员宅基地

Linux操作系统对于我们技术人员,不管是开发,测试还是运维都应该是耳熟能详的一个操作系统。既然如此,那么就绕不开在Linux操作系统下安装软件包。在Linux下安装软件包的方式有三种,分别是rpm安装、源码编译安装、yum安装。接下来我们就重点介绍一下最常用、最好用的一种安装方式,即yum方式安装,因为它能够帮助我们解决软件包之间的依赖关系来提高工作效率哦。一、yum知多少1. yum是如何安装...

springcloud中使用feign时该注意的几个问题_springcloud feign 注意事项-程序员宅基地

在springcloud中使用feign,定义feignclient的接口方法时,我们需要注意:1、GetMapping这个注解不被支持。public interface MyFeignClient{ @GetMapping(value="mypath") //该方法执行会报错 public String getMyInfo();}2、PathVariable必须要设置..._springcloud feign 注意事项

android高德地图自定义带数字marker图标,自定义图标-点标记-示例中心-JS API 示例 | 高德地图API..._量子游走的博客-程序员宅基地

图标点标记html,body,#container{height:100%;width:100%;}.amap-icon img{width: 25px;height: 34px;}// 创建地图实例var map = new AMap.Map("container", {zoom: 13,center: [116.4,39.92],resizeEnable: true});// 以 icon U..._高德地图api 根据数值显示 maker 对应的图标

matlab滤波器改成以频率为单位,matlab - 将FIR滤波器的归一化角频率转换为以Hz为单位的频率 - 堆栈内存溢出...-程序员宅基地

我正在使用Kaiser窗口在Matlab中设计FIR滤波器。 我需要以x轴作为频率绘制滤波器的幅度和相位响应,以赫兹为单位,而不是以归一化的角频率来绘制它们。 这样做,返回的wn等于0.34(由kaiserord()返回),当我将其转换为Hertz时,它将根据需要提供42.5 Hz。我的问题是,当我绘制幅度响应时,-3dB点出现在高于100 Hz的频率处,这意味着截止频率不等于42.5 Hz。..._matlab 滤波需要把时间序列改成频率吗

随便推点

级联rc滤波_了解无源RC滤波器,看完这篇你就懂了(二)-程序员宅基地

在上一篇文章“了解无源RC滤波器,看完这篇你就懂了(一)”中,我们已经讨论了滤波器修改信号中各种频率分量振幅的方式。然而,除了振幅效应之外,电抗性电路元件总是引入相移。低通滤波器相移相位的概念是指周期内特定时刻的周期信号的值。因此,当我们说电路引起相移时,我们的意思是它会在输入信号和输出信号之间产生偏差:输入和输出信号不再在同一时刻开始和结束它们的周期。相移值(例如45°或90°)表示产生的偏差量..._rc滤波器的相移

linux挂在远程目录,Linux远程挂载目录-程序员宅基地

编辑配置文件:/etc/exports添加文件授权列表:/home/www.xmspace.net/data/ 127.0.0.1(rw,no_root_squash,sync,anonuid=1525,anongid=1525)启动服务端服务:nfs服务service nfs restart【如果找不到 service命令,可能是path中没有配 /sbin,在环境变量文件里面加上即可】【exp..._linux挂载127.0.0.1

kaptcha 验证码,去除噪点,去除渲染-程序员宅基地

为什么80%的码农都做不了架构师?>>> ...

Linux页面程序自启动,将进程/服务/程序注册为Linux系统服务systemctl 管理(开机自启动)..._荀哲的博客-程序员宅基地

将程序进程注册为Linux系统服务1. 简介将程序注册为系统服务后,可通过 systemctl 和 service 系统命令启动,查看,停止程序,并可以将程序设置为开机自启动等等。将程序注册为系统服务,需要编辑xxx.service文件,并将文件存储到 /usr/lib/systemd/system/ 目录下2. 常用命令命令格式:systemctl 动作 服务名,service 服务名 动作...

android wifi通信demo,GitHub - Goodbao/WifiDemo: Android Wifi控制、TCP、UDP通信,6.0以上适配..._刚下拖拉机的博客-程序员宅基地

WifiDemoAndroid Wifi控制、TCP、UDP通信,6.0以上适配对于6.0以上,如果你要连接不是自己创建的配置,只需要在mWifiManager.getConfiguredNetworks(),翻出以前连接过的的Wifi 配置,获取对应的netId,就能重新连接上。如果以前连接过的 Wifi 密码改了,但是名称没变,你是连不上的,也没权限去修改密码和删除(可能就是为了安全吧),你就..._android 程序 wifi连接发送数据github

Flyway:数据库表版本管理,与springboot集成_flyway表_时间在手上,需要抓住的博客-程序员宅基地

我们开发或升级项目会碰到很多数据有关问题,比如:这个环境找不到原始的DDL记录、这个环境是否运行了最新的SQL、这个环境运行了哪些SQL、每次更新发版需要先写脚本更新SQL再更新应用、对于老旧项目数据升级或迁移异常困难... 针对这些问题,我们都需要需要一个记录并运行SQL的工具。我们可以手动开发一个工具,用数据表记录项目变更运行的每句SQL,再和项目特定SQL目录下的SQL语句对比,然后再执行那些未执行过的SQL。当然,目前也有这种开源的SQL版本工具,这就是Flyway。_flyway表

推荐文章

热门文章

相关标签