Java 在内存中存储字节数组的最佳方式是什么
在我的服务器事务中的某个地方,我从某个后端作业接收到一个表示pdf文档的字节数组。Java 在内存中存储字节数组的最佳方式是什么,java,arrays,bytebuffer,Java,Arrays,Bytebuffer,在我的服务器事务中的某个地方,我从某个后端作业接收到一个表示pdf文档的字节数组。 稍后在事务中,需要将pdf写入客户端。 但目前我有那个字节数组,我想将它存储在内存中,直到需要将pdf文件写入客户端。 处理字节数组的最佳方法是什么? 创建一个modelobject并将字节数组作为普通字节数组保留在那里? 例如: public class PdfDocument { private byte[] bytearray; private String pdftitle; } 或者,
稍后在事务中,需要将pdf写入客户端。 但目前我有那个字节数组,我想将它存储在内存中,直到需要将pdf文件写入客户端。
处理字节数组的最佳方法是什么?
创建一个modelobject并将字节数组作为普通字节数组保留在那里?
例如:
public class PdfDocument {
private byte[] bytearray;
private String pdftitle;
}
或者,有没有比将Java对象作为普通字节数组保存在内存中更好的Java对象?
像是比特布弗或其他什么
谢谢这取决于您如何接收数据以及数据是否以某种方式更改:
PdfDocument
对象本身,只需要几个字节)引用只占用很少的内存空间。这取决于您想用它做什么。具有所需长度的字节数组是存储数据最有效的内存方式。如果您可以将其直接传递给将其发送给客户端的方法,
byte[]
纯粹在内存中是最好的方式。如果等待写入客户机的所有字节[]
s内存可能不足,则可以使用将字节存储在RAM和临时文件的组合中,就像C中的mmap
一样。
byte[] bytearray = Arrays.copyOf(bytearray, bytearray.length);