java序列化詳細解釋
Java 序列化Serializable詳解(附詳細例子)
1、什麼是序列化和反序列化
Serialization(序列化)是一種將物件以一連串的位元組描述的過程;反序列化deserialization是一種將這些位元組重建成一個物件的過程。
2、什麼情況下需要序列化
a)當你想把的記憶體中的物件儲存到一個檔案中或者資料庫中時候;
b)當你想用套接字在網路上傳送物件的時候;
c)當你想通過RMI傳輸物件的時候;
3、如何實現序列化
將需要序列化的類實現Serializable介面就可以了,Serializable介面中沒有任何方法,可以理解為一個標記,即表明這個類可以序列化。
4、序列化和反序列化例子
如果我們想要序列化一個物件,首先要建立某些OutputStream(如FileOutputStream、ByteArrayOutputStream等),然後將這些OutputStream封裝在一個ObjectOutputStream中。這時候,只需要呼叫writeObject()方法就可以將物件序列化,並將其傳送給OutputStream(記住:物件的序列化是基於位元組的,不能使用Reader和Writer等基於字元的層次結構)。而反序列的過程(即將一個序列還原成為一個物件),需要將一個InputStream(如FileInputstream、ByteArrayInputStream等)封裝在ObjectInputStream內,然後呼叫readObject()即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package
com.sheepmu;
import
java.io.FileInputStream;
import
java.io.FileNotFoundException;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.io.ObjectInputStream;
import
java.io.ObjectOutputStream;
import
java.io.Serializable;
public
class
MyTest implements
Serializable
{
|