Java:在不执行复制操作的情况下偏移字节[]

标签 java performance memory-management arrays

我想知道是否可以访问带偏移量的 byte[] 而无需复制数据?
我查看了 Arrays.*ByteArrayInputStreamSystem.arraycopy,但它们都需要分配一个新的 byte[] 复制到。

我想要的是 C++ 中的等价物:

char* buffer = new char[256];
char* buf_offset = buffer + 128; // <- no copy

最佳答案

您可以改为传递 ByteBuffer。可以进阶、复制、切片,无需复制。

ByteBuffer 真的很丑陋而且违反直觉。然而,它在新的 JDK API 中被广泛使用,因此人们可能会接受它是一种基本类型。

关于Java:在不执行复制操作的情况下偏移字节[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403809/

相关文章:

java - 检查java中的行是否为空?

java - Spring AOP - 在调用 setter 之前获取旧字段值

c# - 如何为 TCP/IP 事务计时

c++ - node.js native 插件 - 包装类的析构函数不运行

java - 在 Android 中暂停和恢复倒数计时器和进度条?

java - 我的 Discord 机器人有一个没有错误的 Java 代码。但我的机器人仍然离线

Delphi:FastMM虚拟内存管理引用?

C# 内存分配和 Release模式

php - 对大表进行简单查询后失去连接

html - 哪个加载速度更快? svg 作为图像或 svg 代码