序列化-serialVersionUID作用

帅气的涛啊發表於2024-06-13

Serializable介面

作用:標記一個類可以被序列化,如果沒有實現該介面,則會丟擲異常。

ObjectOutputStream中原始碼:


實驗:


serialVersionUID

作用:表示一個序列換版本,控制序列化與反序列化。

實現Serializable介面後,如果不顯式設定serialVersionUID,那麼系統會根據類中內容計算一個serialVersionUID。(如果類中內容修改了(新增空格、空行不算),serialVersionUID會自動發生變化)

反序列化時會檢測serialVersionUID是否一致,不一致會阻止反序列化。

驗證步驟:

  1. User類不顯式新增serialVersionUID,構建一個物件,將物件序列化進檔案(user.txt)。
  2. User類新增自定義serialVersionUID,嘗試將user.txt 反序列化成User物件。

相關文章