Java 序列化中的物件圖


物件圖包含一組物件,在包含引用物件的另一個物件序列化後,這些物件會自動序列化。任何序列化的幷包含物件引用的物件,該物件引用都將由 JVM 序列化。

示例

 實際演示

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class One implements Serializable{
   Two s2 = new Two();
}
class Two implements Serializable{
   Three s3 = new Three();
}
class Three implements Serializable{
   int i = 34;
   int j = 67;
}
public class Demo_Serialize{
   public static void main(String args[]) throws Exception{
      One s1 = new One();
      FileOutputStream my_fos = new FileOutputStream("abc.ser");
      ObjectOutputStream my_oos = new ObjectOutputStream(my_fos);
      my_oos.writeObject(s1);
      my_fos.close();
      my_oos.close();
      FileInputStream my_fis = new FileInputStream("abc.ser");
      ObjectInputStream my_ois = new ObjectInputStream(my_fis);
      One my_obj = (One) my_ois.readObject();
      my_fis.close();
      my_ois.close();
      System.out.println("Value of i after it is serialized is " + my_obj.s2.s3.i);
      System.out.println("Value of j after it is serialized is "+my_obj.s2.s3.j);
   }
}

輸出

Value of i after it is serialized is 34
Value of j after it is serialized is 67

有一個名為“One”的類繼承自“Serializable”類。這裡建立了另一個不同類的例項。同一個類由“Serializable”類繼承。又在這個類內建立了一個不同的例項。

另一個類繼承了“Serializable”類。這裡定義了兩個整數,並建立了另一個名為“Demo_Serialize”的類。這裡定義了主要函式。定義了第一個類的例項,並建立了 FileOutputStream 和 ObjectOutputStream 的例項。使用這些流寫入物件。稍後關閉流。再次執行此操作以序列化資料。相關輸出顯示在控制檯上。

更新日期:2020 年 8 月 17 日

681 次瀏覽

啟動您的 職業

透過完成課程獲得認證

開始操作
廣告