java serialization--java序列化

在計算機科學中,數據存儲以及傳送背景下,序列化是一個將數據結夠以及對象狀態翻譯成之後在同一臺電腦或其他電腦環境下能夠存儲,復原的一種格式的過程。根據序列化的格式讀取結果位時能夠創建一個與原對象語義相同的複製品。

序列化對象的過程被稱作的deflating或marshalling(當大家以後看到這兩個詞,理解成序列化就ok了),對應的操作,從序列位中提取出數據結構,稱作反序列化,inflating,unmarshalling。

java中對象的序列化需要被標記成實現java.io.Serialization接口,若是希望徹底覆寫Serialization過程,實現Externalizable接口(包含有存儲,復原對象的方法)。

java對象默認不序列化的原因:

1.並非所有對象在序列化狀態都能捕獲有用狀態。

2.對象序列化狀態只是部分實現類兼容性契約,在序列化類的版本中維護兼容性需要額外考慮,因此類序列化需要深思熟慮地考慮,而非默認實現。

3.序列化允許訪問非transient描述的私有成員,包含敏感信息的類,不應該被序列化,也不應Externalizable。

序列化時需要將敏感信息定義爲transient,transient(瞬時的)表明這是一個不應該被保存的特殊成員變量。尤其當類中包含密碼域時,聲明爲transient。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章