您好,登錄后才能下訂單哦!
本篇內容主要講解“Java序列化知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java序列化知識點有哪些”吧!
序列化時將 Java 對象相關的類信息、屬性及屬性值等等保存起來,反序列化時再根據這些信息構建出 Java 對象。
Java 中進行序列化操作需要實現 Serializable 或 Externalizable 接口。
提供一種簡單又可擴展的對象保存恢復機制。
對于遠程調用,能方便對對象進行編碼和解碼,就像實現對象直接傳輸。
可以將對象持久化到介質中,就像實現對象直接存儲。
允許對象自定義外部存儲的格式。
主要用于驗證版本一致性,每個類都擁有這么一個 ID,在序列化的時候會一起被寫入流中,那么在反序列化的時候就被拿出來跟當前類的 serialVersionUID 值進行比較,兩者相同則說明版本一致,可以序列化成功,而如果不同則序列化失敗。
private static final long serialVersionUID = 1234567890L;
如果一個子類實現了 Serializable 接口而父類沒有實現該接口,則在序列化子類時,子類的屬性狀態會被寫入而父類的屬性狀態將不被寫入。所以如果想要父類屬性狀態也一起參與序列化,就要讓它也實現 Serializable 接口。
另外,如果父類未實現 Serializable 接口則反序列化生成的對象會再次調用父類的構造函數,以此完成對父類的初始化。所以父類屬性初始值一般都是類型的默認值。
Externalizable 接口主要提供自定義序列化方式,繼承 Serializable 接口,提供了 writeExternal 和 readExternal 兩個方法控制序列化和反序列化的內容。
默認情況下所有字段都會被序列化
靜態字段不會被序列化
transient關鍵字修飾字段不會被序列化
可通過ObjectStreamField數組來聲明類需要序列化的字段
到此,相信大家對“Java序列化知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。