什么是Java序列化,如何實現java序列化

文章插圖
序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化 。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間 。序列化是為了解決在對對象流進行讀寫操作時所引發的問題 。
序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流 。
java如何將一個實例序列化先實現序列化接口,使用ObjectOutputStream序列化
JAVA中對象的序列化【java序列化是什么意思,java序列化是指把java對象轉換為字節序列的過程】好像沒有什么關系把,某個對象需要序列化,這個對象的類實現java.io.Serializable即可,此接口中沒有任何需要覆蓋的方法 。如果硬說跟哪個流有關系,應該是這兩個吧java.io.ObjectOutputStream,java.io.ObjectInputStream,這兩個流可以直接操作對象(比如Person對象),像你上面說的流只能操作數據,而不能是對象的,這兩個對象是對應的,一個是寫對象,一個是讀對象 。
什么時候用序列化?
一般我們的對象是在堆內存中的,不是持久化存儲,而你需要持久化存儲(即存到硬盤上),等待下次繼續來讀取這個對象來操作,這時候就需要把這個Person類實現序列化接口java.io.Serializable,java.io.ObjectOutputStream,java.io.ObjectInputStream來讀寫,用你用你說的那些流是無法做到的 。另外,如果你的對象需要在網絡上傳來傳去的,也需要序列化 。
純手工打,本人也是初學,解釋的不好還請見諒!
誰能給一個java序列化的簡單例子??一個簡單的Java序列化的例子
importjava.io.*;
importjava.util.*;
classDataimplementsSerializable{//實現序列話接口
privateintn;
publicData(intn){this.n=n;}
publicStringtoString(){returnInteger.toString(n);}
}
publicclassWormimplementsSerializable{
publicstaticvoidmain(String[]args)
throwsClassNotFoundException,IOException{//序列話讀入和寫入Object可能會有這兩個異常
//將你要序列化的object,保留到一個文件中
Randomrand=newRandom();
Datad=newData(rand.nextInt(10));//構建你需要序列話的Object
System.out.println("d="+d);
ObjectOutputStreamout=newObjectOutputStream(
newFileOutputStream("worm.out"));//準備寫入的文件
out.writeObject(d);
out.flush();
out.close();//執行到這里你可以看見worm.out這個文件,
//以下的代碼讀出你剛剛寫入Object
ObjectInputStreamin=newObjectInputStream(
newFileInputStream("worm.out"));// 讀你剛剛寫入的文件
Datad2=(Data)in.readObject();// 重新構建你剛剛寫入的Object
System.out.println("d2="+d2);}
}
java中的序列化是什么意思
- 白炭黑的用途及作用,白炭黑的主要成分是什么
- 打電話說暫時無人接聽是什么意思,您撥叫的用戶暫時無人接聽是什么意思
- cut,cut是什么意思英語
- npc是什么意思密室逃脫,npc是什么意思 劇本殺
- 梭織面料有什么優缺點,梭織面料是什么面料圖片
- 塜怎么讀音是什么意思,謁怎么讀音
- applicant是什么意思,applicant和application的區別
- 靈魂的含義是什么意思呢,靈魂的意思是什么意思
- 寬泛的近義詞,寬泛的英語
- 夢見頭發被剪掉了一大截自己很生氣,夢見頭發被剪了是什么征兆 女人
