您好,登錄后才能下訂單哦!
什么是 java 序列化?什么情況下需要序列化?
序列化:將 Java 對象轉(zhuǎn)換成字節(jié)流的過程。
反序列化:將字節(jié)流轉(zhuǎn)換成 Java 對象的過程。
當(dāng) Java 對象需要在網(wǎng)絡(luò)上傳輸 或者 持久化存儲到文件中時,就需要對 Java 對象進(jìn)行序列化處理。
序列化的實(shí)現(xiàn):類實(shí)現(xiàn) Serializable 接口,這個接口沒有需要實(shí)現(xiàn)的方法。實(shí)現(xiàn) Serializable 接口是為了告訴 jvm 這個類的對象可以被序列化。
注意事項(xiàng):
某個類可以被序列化,則其子類也可以被序列化
聲明為 static 和 transient 的成員變量,不能被序列化。static 成員變量是描述類級別的屬性,transient 表示臨時數(shù)據(jù)
反序列化讀取序列化對象的順序要保持一致
具體使用
package?constxiong.interview;? import?java.io.FileInputStream;import?java.io.FileOutputStream;import?java.io.IOException;import?java.io.ObjectInputStream;import?java.io.ObjectOutputStream;import?java.io.Serializable;? /** ?*?測試序列化,反序列化 ?*?@author?ConstXiong ?*?@date?2019-06-17?09:31:22 ?*/public?class?TestSerializable?implements?Serializable?{? private?static?final?long?serialVersionUID?=?5887391604554532906L; private?int?id; private?String?name;? public?TestSerializable(int?id,?String?name)?{ this.id?=?id; this.name?=?name; } @Override public?String?toString()?{ return?"TestSerializable?[id="?+?id?+?",?name="?+?name?+?"]"; }? @SuppressWarnings("resource") public?static?void?main(String[]?args)?throws?IOException,?ClassNotFoundException?{ //序列化 ObjectOutputStream?oos?=?new?ObjectOutputStream(new?FileOutputStream("TestSerializable.obj")); oos.writeObject("測試序列化"); oos.writeObject(618); TestSerializable?test?=?new?TestSerializable(1,?"ConstXiong"); oos.writeObject(test); //反序列化 ObjectInputStream?ois?=?new?ObjectInputStream(new?FileInputStream("TestSerializable.obj")); System.out.println((String)ois.readObject()); System.out.println((Integer)ois.readObject()); System.out.println((TestSerializable)ois.readObject()); } ? }
打印結(jié)果:
測試序列化 618 TestSerializable?[id=1,?name=ConstXiong]
喜歡這篇文章的話,可以給作者點(diǎn)個喜歡,點(diǎn)下關(guān)注,每天都會分享Java相關(guān)文章!
記得一定要關(guān)注我哦,會不定時的福利贈送,包括整理的面試題,學(xué)習(xí)資料,源碼等~~
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。