注意点:1、序列化并不保存静态变量

         2、若父类未实现Serializable,子类实现了,父类需提供一个无参构造方法,且父类不会被序列化(无参构造方法只是用来构造父类)

         3、Transient关键词可以用来阻止成员被序列化

         4、只有成员变量能被序列化,成员函数不能被序列化

  1. TreeNode obj = new TreeNode(); //要实现Serializable接口
  2.         obj.setId(1); 
  3.         //内存流 
  4.         //ByteArrayOutputStream os = new ByteArrayOutputStream(); 
  5.         //ObjectOutputStream outStream = new ObjectOutputStream(os); 
  6.          
  7.         //文件流 
  8.         FileOutputStream fos = new FileOutputStream("dat"); 
  9.         ObjectOutputStream outStream = new ObjectOutputStream(fos); 
  10.          
  11.         outStream.writeObject(obj); 
  12.         outStream.flush(); 
  13.         outStream.close(); 
  14.  
  15.         //不知道为什么JAVA没有像C#里的同时支持输入输出Stream 
  16.         //ByteArrayInputStream in = new ByteArrayInputStream(os.toByteArray()); 
  17.         //ObjectInputStream inStream = new ObjectInputStream(in); 
  18.          
  19.         FileInputStream fin = new FileInputStream("dat"); 
  20.         ObjectInputStream inStream = new ObjectInputStream(fin); 
  21.          
  22.         TreeNode t = (TreeNode)inStream.readObject(); 
  23.         System.out.println(t.getId()); 
  24.         inStream.close();