摘要:目的在于,傳送對象的狀態,也就是屬性值反序列化后的對象還可以保存到硬盤上。實現接口,并增加與這個方法來自定義某些屬性的序列化。在序列化和反序列化的過程中自定義序列化,我們還可以根據版本號來選擇性的序列化那些變化的屬性的狀態。
序列化Serializable
作用
1.當2個進程在進行遠程通信時,相互發送數據,數據都是以二進制的形式傳送的。如果我們要傳輸對象的話,就需要把對象轉化為字節數組(二進制數據),接收方接收后反序列成對象。目的在于,傳送對象的狀態,也就是屬性值
2.反序列化后的對象還可以保存到硬盤上。
實現方式
1.實現Serializable接口。
2.實現Serializable接口,并增加void writeObject(ObjectOutputStream out) throws IOException與void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException這2個方法來自定義某些屬性的序列化。
3.實現Externalizable接口(該接口繼承自Serializable接口),并重寫writeExtername與readExternal方法來完全自定義要序列化的屬性。
顯式定義serialVersionUID屬性的作用
1.對于一個要進行序列化的類,我們希望類的不同版本對序列化兼容(這個類可能前前后后對字段進行刪改),如果不顯式設置id,這個類的每個版本的id(由系統生成)都是不一樣的。那么反序列化的時候,永遠只能反序列化最新的實例了(舊的實例因為id不一致將失敗)。
2.所以要保證兼容的話,就需要設置一個顯式的id。那么在序列化舊的實例時,新添加的或更改的字段會被設置為null,刪除的字段不設置。
3.如果我們不想兼容不同版本,我們還可以為不同的版本再設置一個版本號。在序列化和反序列化的過程中(自定義序列化),我們還可以根據版本號來選擇性的序列化那些變化的屬性的狀態。
在springmvc里,javabean都要實現Serializable接口,并生成顯式id
其目的就是我們上面分析的序列化的作用以及顯式id的作用,特別是在遠程服務調用的項目中。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77267.html
摘要:格式術語說明塊狀結構指的是一個類,方法或構造函數的主體。方法名或構造函數名與左括號留在同一行。空白垂直空白以下情況需要使用一個空行類內連續的成員之間字段,構造函數,方法,嵌套類,靜態初始化塊,實例初始化塊。 前言 這份文檔是Google Java編程風格規范的完整定義。當且僅當一個Java源文件符合此文檔中的規則, 我們才認為它符合Google的Java編程風格。 與其它的編程風格...
摘要:引言到目前為止,我們已經構建了一個有工作量證明機制的區塊鏈。在今天的內容中,我們會將區塊鏈持久化到一個數據庫中,然后會提供一個簡單的命令行接口,用來完成一些與區塊鏈的交互操作。這同樣也意味著,一個也就是區塊鏈的一種標識符。 翻譯的系列文章我已經放到了 GitHub 上:blockchain-tutorial,后續如有更新都會在 GitHub 上,可能就不在這里同步了。如果想直接運行代碼...
摘要:學堂碼匠本期繼續走入算法冒泡排序法。冒泡排序法完整代碼冒泡排序法的優化假如序列的數據為使用上面的冒泡排序法進行排序,得到的結果肯定沒有問題,但是,待排序的序列是有序的,理論上是無需遍歷排序。 HTML5學堂-碼匠:本期繼續走入算法 —— 冒泡排序法。冒泡排序算法相對簡單,容易上手,穩定性也比較高,算是一種較好理解的算法,也是面試官高頻提問的算法之一。 Tips:關于算法及排序的基礎知識...
摘要:用于把對象序列化字符串,在序列化對象時,所有函數及原型成員都會被有意忽略,不體現在結果中。對第步返回的每個值進行相應的序列化。參考文檔高級程序設計作者以樂之名本文原創,有不當的地方歡迎指出。 showImg(https://segmentfault.com/img/bVburW1?w=658&h=494); JSON與JavaScript對象 JSON是一種表示結構化數據的存儲格式,語...
閱讀 878·2021-10-13 09:39
閱讀 3531·2021-09-26 10:16
閱讀 2861·2019-08-30 15:54
閱讀 1037·2019-08-30 14:22
閱讀 2886·2019-08-29 15:39
閱讀 3253·2019-08-27 10:52
閱讀 809·2019-08-26 13:59
閱讀 1703·2019-08-26 12:20