2017-01-17 56 views
0

你好我有一個關於Java的SerialVersionUID的問題。 如果我生成SerialVersionUIDclass A,的A 2個實例具有約類和對象另一個唯一的序列相同SerialVersion,不同大約object1object2?或者如何? 我不明白,請回復我。謝謝。SerialVersion UID Java - SerialVersionUID的工作原理

+2

的serialVersionUID是一個靜態字段,因此「屬於」的類,而不是對任何實例。 – Robert

回答

1

SerialVersionUID是標識類的版本的方法。因此,同一類的所有對象將具有相同的SerialVersionUID。 但是,如果您對類進​​行更改,則建議更改SerialVersionUID。然後在不兼容的情況下,對象的序列化將失敗。

參見:What is a serialVersionUID and why should I use it?

0
  1. 的serialVersionUID用於對象的版本控制。

  2. 如果我們沒有在類中定義的serialVersionUID,任何 修改類的話那我們將無法反序列化 我們班因爲Java編譯器生成的serialVersionUID爲 修改的類將是不同的從舊序列化的對象和 反序列化過程將結束投擲 java.io.InvalidClassException

  3. 序列化在運行時相關聯,每個序列化類 版本號,稱爲的serialVersionUID,這是在使用 反序列化到驗證一個 序列化對象的發送者和接收者已加載該對象是相對於序列 兼容的類。

的serialVersionUID object1和對象2?

這將是一樣的,作爲串行版本uid是靜態的(即,類級)