ByteBuffer.duplicate
时间: 2024-02-01 07:10:50 浏览: 135
ByteBuffer.duplicate()方法是用于创建一个与原始ByteBuffer相同内容的新ByteBuffer。这两个ByteBuffer共享相同的数据元素序列,但是它们的position,limit和mark值是独立的。对原始ByteBuffer或新ByteBuffer的修改都会影响到另一个ByteBuffer。
以下是一个示例代码:
```java
import java.nio.ByteBuffer;
public class ByteBufferDuplicateExample {
public static void main(String[] args) {
// 创建一个ByteBuffer
ByteBuffer originalBuffer = ByteBuffer.allocate(10);
originalBuffer.put("Hello".getBytes());
originalBuffer.flip();
// 创建一个与原始ByteBuffer相同内容的新ByteBuffer
ByteBuffer duplicateBuffer = originalBuffer.duplicate();
// 修改原始ByteBuffer的内容
originalBuffer.put(" World".getBytes());
// 输出原始ByteBuffer和新ByteBuffer的内容
System.out.println("Original Buffer: " + new String(originalBuffer.array()));
System.out.println("Duplicate Buffer: " + new String(duplicateBuffer.array()));
}
}
```
输出结果为:
```
Original Buffer: Hello World
Duplicate Buffer: Hello World
```
可以看到,无论是修改原始ByteBuffer还是新ByteBuffer,它们的内容都是相同的。
阅读全文