NIO基础方法一
1.remaining();返回当前位置与limit之间得元素数。
int[] intArray={1,2,3,4};
IntBuffer intBuffer=IntBuffer.wrap(intArray);
intBuffer.limit(3);
intBuffer.position(1);
System.out.println(intBuffer.remaining());
2.isDirect() 判断是否为直接缓冲区。
ByteBuffer byteBuffer=ByteBuffer.allocateDirect(100);
System.out.println(byteBuffer.isDirect());
3.clear()还原缓冲区得状态,是状态,不是数据;比如将position=0.market丢失掉。
byte[] byteArray=new byte[]{1,2,3};
ByteBuffer byteBuffer=ByteBuffer.wrap(byteArray);
byteBuffer.position(2);
byteBuffer.limit(3);
byteBuffer.mark();
byteBuffer.clear();
System.out.println("position:"+byteBuffer.position()+";limit:"+byteBuffer.limit());
try {
byteBuffer.reset();
} catch (Exception e) {
System.out.println("market已经丢失");
}
4.flip() 向缓冲区写入一些数据后,下一步直接读取缓冲区中得数据之前,以改变limit与position得值。
byte[] byteArray=new byte[]{1,2,3};
ByteBuffer byteBuffer=ByteBuffer.wrap(byteArray);
byteBuffer.position(2);
byteBuffer.mark();
byteBuffer.flip();
System.out.println("position:"+byteBuffer.position()+";limit:"+byteBuffer.limit());
try {
byteBuffer.reset();
} catch (Exception e) {
System.out.println("market已经丢失");
}
5.hasArray()判断此缓冲区是否具有可访问得底层实现数组。
ByteBuffer byteBuffer=ByteBuffer.allocate(100);
byteBuffer.put((byte) 1);
byteBuffer.put((byte) 2);
System.out.println(byteBuffer.hasArray()); ByteBuffer byteBuffer2=ByteBuffer.allocateDirect(100);
byteBuffer2.put((byte) 1);
byteBuffer2.put((byte) 2);
System.out.println(byteBuffer2.hasArray());
6.hasRemaining() 判断当前位置与限制之间是否有元素。
byte[] byteArray=new byte[]{1,2,3};
ByteBuffer bytebuffer=ByteBuffer.wrap(byteArray);
bytebuffer.limit(3);
bytebuffer.position(2);
System.out.println(bytebuffer.hasRemaining()+";"+bytebuffer.remaining());
7.rewind() position置为0,标记清除掉,limit不变。
8.clear() position置为0,limit=capacity,market=-1.清除缓冲区得状态。
9.List.toArrat(T[]) 转成数组。
ByteBuffer buffer1=ByteBuffer.wrap(new byte[]{'a','b','c'});
ByteBuffer buffer2=ByteBuffer.wrap(new byte[]{'x','y','z'});
ByteBuffer buffer3=ByteBuffer.wrap(new byte[]{'1','2','3'});
List<ByteBuffer> list=new ArrayList<ByteBuffer>();
list.add(buffer1);
list.add(buffer2);
list.add(buffer3);
ByteBuffer[] byteBufferArray=new ByteBuffer[list.size()];
list.toArray(byteBufferArray);
System.out.println(byteBufferArray.length);
for(int i=0;i<byteBufferArray.length;i++){
ByteBuffer eachByteBuffer=byteBufferArray[i];
while (eachByteBuffer.hasRemaining()) {
System.out.print((char) eachByteBuffer.get());
}
System.out.println();
}
NIO基础方法一的更多相关文章
- 从零开始学 Web 之 ES6(三)ES6基础语法一
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用spring framework的IoC容器功能----->方法一:使用XML文件定义beans之间的依赖注入关系
XML-based configuration metadata(使用XML文件定义beans之间的依赖注入关系) 第一部分 编程思路概述 step1,在XML文件中定义各个bean之间的依赖关系. ...
- JBOSS通过Apache负载均衡方法一:使用mod_jk
JBOSS通过Apache负载均衡方法一:使用mod_jk 本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负 ...
- centos6.5下oracle11g开机自动启动方法一
转裁于 方法一 https://blog.csdn.net/wx5040257/article/details/77875690 方法二 https://blog.csdn.net/wx504025 ...
- mybatis由浅入深day02_2一对一查询_2.2方法一:resultType
2 一对一查询 2.1 需求(查询所有订单信息,关联查询创建订单的用户信息) 查询所有订单信息,关联查询创建订单的用户信息 注意:因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用 ...
- 头像文件上传 方法一:from表单 方法二:ajax
方法一:from表单 html 设置form表单,内包含头像预览div,内包含上传文件input 设置iframe用来调用函数传参路径 <!--表单提交成功后不跳转处理页面,而是将处理数据返回给 ...
- vue抽取公共方法———方法一
方法一:Vue插件 1.概述 作用:满足vue之外的需求,特定场景的需求 比如说,让你在每个单页面组件里,都可以调用某个方法(公共方法),或者共享某个变量等 2.使用方法 [声明插件]- [写插件]- ...
- 登录操作(方法一:设置flag标志位)
登录操作(方法一:设置flag标志位) user_name="star"passwoed='123'passed_authentication=Falsecount=0for i ...
- JS数组 二维数组 二维数组的表示 方法一: myarray[ ][ ];方法二:var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]
二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: myarray[ ] 二维数组,我们看成一组盒子,不过每个盒子里还可以放多个盒子. 二维数组的表示: myarray[ ...
随机推荐
- 虚拟化和Docker
1.硬件层的虚拟化具有高性能和隔离性,因为hypervisor直接在硬件上运行,有利于控制VM的OS访问硬件资源,使用这种解决方案的产品有VMware ESXI和Xen server. 2.hyper ...
- FCC---CSS Flexbox: Align Elements Using the justify-content Property
Sometimes the flex items within a flex container do not fill all the space in the container. It is c ...
- 不看好 git ,也看不懂为什么那么多人去使用 git
上来就亮明观点,符合我的性格.呵呵呵. 为什么不看好 git 呢? 首先,我们来看看 git 产生的背景. git 是 Linus 开发的,最初的目的,是为了管理 Linux 系统的源代码.这是一个分 ...
- ORA-07217 environment variable cannot be evaluated
问题描述:还是rman的问题,一个很沙雕的问题,改了半天,准备是要做数据库的全备,和归档的备份 1.连接rman进行备份,这里要保持数据库为mount状态,因为要对数据库全备 [oracle@orcl ...
- rest.css解决不同浏览器元素默认样式不同的问题
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ...
- Netty如何监控内存泄露
目录 Netty如何监控内存泄露 前言 JDK的弱引用和引用队列 Netty的实现思路 代码实现 分配监控对象 追踪和检查泄露 Netty如何监控内存泄露 前言 一般而言,在Netty程序中都会采用池 ...
- Mysql 的异常:The last packet successfully received from the server was 90 milliseconds ago. The last packet sent successfully to the server was 43,603,303 milliseconds ago. is longer than the server con
调试一个程序, 调试到一半, 下班回家, 程序卡在了某一行, 第二天早上回来一看, 发现了异常: Wed Sep :: GMT+: WARN: Establishing SSL connection ...
- (3)一起来看下使用mybatis框架的select语句的源码执行流程吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的select语句为例,只贴我觉得比较重要的源码,其他不重要非关键的就不贴了 主流程和insert语句差不多,这里主要讲不同的流程,前面 ...
- 关于MFC与OpenGL结合绘图区域用鼠标来控制图形的移动的坑
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773171.html 之前开发的导入多个模型,旋转,分别移动什么什么的,都是在纯OpenGL ...
- Oracle模糊查询CONCAT参数个数无效
在使用MyBatis操作Oracle数据库的时候,写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错,参数个数无效 <if test="empId!=null and ...