序列化和反序列化的一些注意事項

2021-10-08 11:46:46 字數 544 閱讀 3542

序列化就是將物件儲存到磁碟中

反序列化就是將物件讀取出來

注意事項:

1.想要讓乙個物件能夠進行序列化,需要將這個物件所屬的類實現乙個標記介面(serializable).

2.如果序列化後,這個類進行了修改,反序列時會報錯(會丟擲 invalidclas***ception異常)

可以在這個類中加private static final long serialversionuid = x l;x是不大於long型數字的最大值的整數數字.

原因:如果不加這段**,存到本地是的序列號是隨機的,

如果修改了類中的內容,反序列化時,虛擬機會重新生成乙個序列號,序列號不同,導致反序列化失敗.

新增了private static final long serialversionuid = x l;序列化時儲存到的序列號就不是隨機的了.因此可以修改裡面的內容.

3.如果序列化多個物件,(而且是同乙個類的物件)那麼此時就可以將物件新增至集合中,然後再進行序列化,如果不將這些物件統一新增至集合或陣列中,當序列化,可能會報錯.

序列化注意事項

1.在反序列化的時候必須得有對應的class檔案,否則丟擲classnotfoundexeception。2.序列化物件的直接或者間接父類要麼是能夠序列化的,要麼就得有無參的構造器,否則無法完成反序列化,丟擲invalidclas ception,對與無法序列化但是有無參構造器的情況,父類中的fil...

序列化和反序列化 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...