[英]Should a serialized Java object always be represented by the same sequence of bytes each time is it serialized?
例如,如果對象實例被序列化(結果為'byte [] bs1'),然后再次序列化(結果為'byte [] bs2'),則'bs1'和'bs2'的長度應相同且包含相同的字節? 如果沒有,為什么不呢?
為避免歧義,我應該說同一對象(不是兩個“相同的”對象-同一實例)的兩次序列化發生在彼此之間的毫秒內,在同一線程中,在同一JVM上-在(可變)之前)對象被傳遞給一個方法。
注意,對象甚至沒有被序列化, 反序列化然后再序列化-它只是被序列化了兩次。 同樣,關於對象的類根本沒有什么“聰明”之處。 這只是一個簡單的聚合POJO。
我使用序列化的字節作為臨時測試來檢測對象是否在方法內部被更改。 但是,我似乎看到了一些示例,其中對象顯然沒有改變其狀態-但是一個byte []與另一個字節不同。
我當時假設-只是一個假設-他們會是一樣的。 它們可能不是某些原因嗎?
附錄:
此外,對於沒有示例代碼的道歉也無法說明這一點。 當前,這是嵌入大型系統中的一小段代碼。 如有必要,我將嘗試提取一個較小的,可運行的演示。 我想知道我的假設是否存在一個基本問題,因此是否有人可以解釋為什么該假設是錯誤的。
它不一定總是與序列化產生的字節序列完全相同 。 例如,即使我們在談論單個實例,也不保證Set
序列化其元素的順序是恆定的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.