java中序列化和反序列化

2021-09-03 01:51:50 字數 579 閱讀 6846

序列化:將物件轉換成字串行。

反序列化:將字串行還原成物件。

(1):當想把記憶體中的物件儲存到檔案或者資料庫中的時候。

(2):當想用套接字在網路上傳輸物件的時候。

(3):當想通過rmi傳輸物件的時候。

當我們定義乙個實體的時候,總是自然而然的實現序列化介面,生成序列化的id,但我們究竟什麼時候用到,如果不做以上操作在什麼場景下會丟擲異常呢?

(1):當我們想將物件寫到檔案中,或者儲存到資料庫中的時候,如果沒有對物件進行序列化操作,將會丟擲notserializableexception異常。

(2):當我們實現了序列化介面,對物件進行了序列化,之後物件中又新增了新的屬性,這時反序列操作就會丟擲invalidclas***ception異常,這是因為我們沒有生成序列化id,是系統為我們指定了序列化id,新增屬性之後,導致序列化id改變,反序列時,id不一致導致的。

(3):transient修飾的字段和static欄位不會進行序列化,transient序列化之後欄位為null,static欄位可通過序列化之後,修改static的值來進行測試。如果static欄位參與序列化,那麼反序列之後的值會覆蓋我們修改的值。

java 序列化 反序列化

序列化 bytearrayoutputstream bytearrayoutputstream new bytearrayoutputstream objectoutputstream objectoutputstream null try catch exception e finally byt...

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

序列化和反序列化

先定義乙個類 serializable xmlroot shintech public class person set public string name set public person this 0,string.empty public person int m age,string m...