1. 對象序列化
將一個對象轉換爲字節形式的過程就是對象序列化。序列化還有個名稱爲串行化,序列化後的對象再被反序列化後得到的對象,與之前的對象不再是同一個對象。
1)對象序列化必須實現Serializable接口,但該接口無任何抽象方法,不需要重寫方法,只爲了標註該類可序列化。
2)且同時建議最好添加版本號(編號隨便寫):serialVersionUID。版本號,用於匹配當前類與其被反序列化的對象是否處於同樣的特徵(屬性列表一致等)。反序列化時,ObjectInputStream會根據被反序列化對象的版本與當前版本進行匹配,來決定是否反序列化。 不加版本號可以,但是可能存在反序列化失敗的風險。
3)JDK提供的大多數java bean都實現了該接口
4)transient關鍵字:序列化時忽略被它修飾的屬性。
5)對象的序列化使用的類:ObjectOutputStream
writeObject(Object obj):①將給定對象序列化。②然後寫出。
6)對象的反序列化使用的類:ObjectInputStream
Object readObject():將讀取的字節序列還原爲對象
案例28: