簡體   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