java序列化一定要應該注意的6個事項!,java序列化

來源:互聯網
上載者:User

java序列化一定要應該注意的6個事項!,java序列化

1、如果子類實現Serializable介面而父類未實現時,父類不會被序列化,但此時父類必須有個無參構造方法,否則會拋InvalidClassException異常。

2、靜態變數不會被序列化,那是類的“菜”,不是對象的。

3、transient關鍵字修飾變數可以限制序列化。

4、虛擬機器是否允許還原序列化,不僅取決於類路徑和功能代碼是否一致,一個非常重要的一點是兩個類的序列化 ID 是否一致,就是 private static final long serialVersionUID = 1L。

5、Java 序列化機製為了節省磁碟空間,具有特定的儲存規則,當寫入檔案的為同一對象時,並不會再將對象的內容進行儲存,而只是再次儲存一份引用。還原序列化時,恢複參考關聯性。

6、序列化到同一個檔案時,如第二次修改了相同對象屬性值再次儲存時候,虛擬機器根據參考關聯性知道已經有一個相同對象已經寫入檔案,因此只儲存第二次寫的引用,所以讀取時,都是第一次儲存的對象。讀者在使用一個檔案多次 writeObject 需要特別注意這個問題(基於第5點)。

轉載請註明—作者:Java我人生(陳磊興)   原文出處:http://blog.csdn.net/chenleixing/article/details/43833805

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.