Java基礎系列(5) 序列化

2021-09-08 05:43:37 字數 701 閱讀 8982

序列化可以將任意物件寫出到流中,並在之後將其讀回。

可以使用序列化將物件持久化到磁碟,等到使用時再讀出來,可以節省記憶體。

可以通過網路傳遞物件。

想要乙個類生成的物件可以被序列化,必須實現serializable介面

public class book  implements serializable

public string getname()

public void setname(string name)

}

public class serializabletest  catch (exception e) 	

}}

輸出結果:

booka

bookb

在上面的book類**中有個常量serialversionuid,它的作用是用於版本的管理。如果不定義這個常量,其物件也可以進行序列化和反序列化。但是,當物件被序列化後,類發生的任何變化都會導致反序列化失敗,因為類的變化會導致指紋變化。相反,如果定義了serialversionuid,那麼只要serialversionuid不變,即使類的內容發生變化,在反序列化時也會成功,因為會直接使用serialversionuid作為指紋。比如,將乙個book的物件b序列化之後,book的內容發生變化,增加了乙個域,那麼在用新的類對b進行反序列化時,新增的域將設定成預設值。

C 基礎學習08(序列化和反序列化)

1.引用命名空間 using system.runtime.serialization.formatters.binary 引入命名空間2.類必須是可序列化的 serializable 使此類可序列化 public class person set private string gender pub...

python教程系列(三 6 序列化)

我們把物件 變數 從記憶體中變成可儲存或傳輸的過程稱之為序列化,在python中叫pickling,在其他語言中也被稱之為serialization,marshalling,flattening等等,都是乙個意思。1 持久儲存狀態 需知乙個軟體 程式的執行就在處理一系列狀態的變化,在程式語言中,狀態...

A08 序列化與反序列化

using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace a01 serializeanddeserialize s...