java web 缓存省市县_java缓冲区

本文介绍了Java NIO中的ByteBuffer和IntBuffer,包括如何通过allocate和wrap方法创建缓冲区,以及这两个方法的具体用法。ByteBuffer.allocate()和IntBuffer.allocate()用于创建指定容量的缓冲区,而wrap方法允许使用已有数据创建缓冲区,如ByteBuffer.wrap(byte[])和IntBuffer.wrap(int[], offset, length)。此外,ByteBuffer底层与byte数组关联,缓冲区和数组的改动相互影响。" 126956308,9205053,微服务架构下的电商系统技术实战,"['Java', 'Spring Cloud', '面试', '教育电商', '分布式']
摘要由CSDN通过智能技术生成

1:概述

Java提供了七个基本的缓冲区,分别由七个类来管理,它们都可以在java.nio包中找到。这七个类如下所示:

ByteBuffer

ShortBuffer

IntBuffer

CharBuffer

FloatBuffer

DoubleBuffer

LongBuffer

st1":*{behavior:url(#ieooui) }

1. 通过静态方法allocate来创建缓冲区。

这七类都有一个静态的allocate方法,通过这个方法可以创建有最大容量限制的缓冲区对象。allocate的定义如下:

ByteBuffer类中的allocate方法:

public static ByteBuffer allocate(int capacity)

IntBuffer类中的allocate方法:

public static IntBuffer allocate(int capacity)

其他五个缓冲区类中的allocate 方法定义和上面的定义类似,只是返回值的类型是相应的缓冲区类。

allocate方法有一个参数capacity,用来指定缓冲区容量的最大值 . capacity的不能小于0,否则会抛出一个IllegalArgumentException异常 , 1024*1024(1M)

2:通过静态方法allocate来创建缓冲区

allocate的使用方法如下:

ByteBuffer byteBuffer = ByteBuffer.allocate(1024);

IntBuffer intBuffer = IntBuffer.allocate(1024);

3:通过静态方法wrap来创建缓冲区。

wrap方法可以利用已经存在的数据来创建缓冲区

它们的使用方法如下:

byte[] myByte = new byte[] { 1, 2, 3 };

int[] myInt = new int[] { 1, 2, 3, 4 };

ByteBuffer byteBuffer = ByteBuffer.wrap(myByte);

IntBuffer intBuffer = IntBuffer.wrap(myInt, 1, 2);

4992754.html

补:

wrap(byte[] array)

4992754.html

4992754.html这个缓冲区的数据会存放在byte数组中,bytes数组或buff缓冲区任何一方中数据的改动都会影响另一方。其实ByteBuffer底层本来就有一个bytes数组负责来保存buffer缓冲区中的数据,通过allocate方法系统会帮你构造一个byte数组

wrap(byte[] array,  int offset, int length) 在上一个方法的基础上可以指定偏移量和长度,这个offset也就是包装后byteBuffer的position,而length呢就是limit-position的大小,从而我们可以得到limit的位置为length+position(offset)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值