Java序列化是指將對象轉換為字節流,以便可以在網絡上傳輸或保存到文件中,同時可以將字節流再轉換成原始對象。Java序列化的實現可以通過以下幾個步驟:
讓類實現Serializable接口:要使一個Java類可以被序列化,必須讓該類實現Serializable接口。該接口是一個標記接口,沒有任何方法需要實現。
添加版本號:在需要序列化的類中添加一個私有的靜態常量serialVersionUID,用于版本控制。
寫入對象:通過將對象寫入ObjectOutputStream流中來實現序列化。可以使用以下代碼實現:
try {
FileOutputStream fileOut = new FileOutputStream("object.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(object);
out.close();
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileInputStream fileIn = new FileInputStream("object.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
Object object = in.readObject();
in.close();
fileIn.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
需要注意的是,要想成功地序列化一個對象,該對象的所有引用類型的成員變量都必須可序列化。如果某個成員變量不可序列化,可以將其聲明為transient,這樣在序列化時會被忽略掉。