繁体   English   中英

在内存中存储字节数组的最佳方法是什么

[英]What is the best way to store a byte array in memory

在服务器事务中的某处,我从某个后端作业接收一个表示pdf文档的字节数组。
稍后在交易中,需要将pdf写入客户端。 但是目前,我有该字节数组,我想将其存储在内存中,直到需要将pdf文件写入客户端为止。
处理字节数组的最佳方法是什么?
创建一个ModelObject并将字节数组保留为纯字节数组?
因此,例如:

public class PdfDocument {
    private byte[] bytearray;
    private String pdftitle;
}

还是有比将其作为纯字节数组保留在内存中更好的Java对象? 像ByteBuffer或其他东西。

谢谢

这取决于您如何接收数据以及数据是否以某种方式更改:

  1. 听起来您已经从后端获得了字节数组。 在那种情况下,我认为您的简单类将是将其保留在内存中的最有效方法,因为它不会消耗大量的额外内存( PdfDocument对象本身仅需几个字节)。
  2. 但是,您应该考虑后端是否保证它以后不会更改阵列。 如果不是这种情况,或者为了安全起见,可以使用Arrays.copyOf创建一个副本:

     byte[] bytearray = Arrays.copyOf(bytearray, bytearray.length); 

似乎您正在寻找更花哨的东西,但我想您的课程在这里很好。

变量“ bytearray”是对Array类的对象的引用。 引用占用很少的内存空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM