JAVA中的序列化是个什么概念?

解决方案 »

  1.   

    可以简单的理解把对象状态以字节流存储.
    import java.io.*;
    /**
     *
     * @author Administrator
     */
    public class SerlizDemo {
        
        /** Creates a new instance of SerlizDemo */
        public SerlizDemo() {
        } 
        public static void main(String args[])
        { 
          try 
          {
               MyClass object1=new MyClass("Hello", -7, 2.7e10);
               System.out.println(object1);
               FileOutputStream fos=new FileOutputStream("myfile");
               ObjectOutputStream oos=new ObjectOutputStream(fos);
               oos.writeObject(object1);
                MyClass object2=new MyClass("Hmy", -8, 2.7e10);
                oos.writeObject(object2);
               oos.flush();
               oos.close();
          }
          catch(Exception e)
          {
            e.printStackTrace();
          }
          
          try
          {
            MyClass object;
            FileInputStream fis=new FileInputStream("myfile");
            ObjectInputStream ois=new ObjectInputStream(fis);
            object=(MyClass)ois.readObject();
            System.out.println("object:"+object);
             object=(MyClass)ois.readObject();
            System.out.println("object:"+object);
            object=(MyClass)ois.readObject();
          }
          catch(Exception e)
          {
           e.printStackTrace();
          }
        }
    }
    class MyClass implements Serializable
    {
      String s;
      int i;
      double d;
      private static final long serialVersionUID = 1L;
      public MyClass(String s ,int i ,double d)
      {
          this.s=s;
          this.i=i;
          this.d=d;
      }
      public String toString()
      {
        return "s="+s+"; i="+i+"; d="+d;
      }
    }
      

  2.   

    保存对象,然后就可以任意传递对象,是远程方法调用RMI 的基础
      

  3.   

    序列化可以把对象写入到流中,然后再从流中恢复它。其实应该分为“序列化”和“反序列化”
    ObjectOutputStream用于把对象写入流,而ObjectInputStream用于恢复对象。也就是说,一旦对象被序列化,对像就变成了流,例如它可以是流文件,这样一来这个对象就脱离了原来的程序而单独存在,就像你打RPG游戏是的存档。当你再运行程序时,在把它从流中恢复,就像游戏中的读档,而且当你恢复它时,你保存的那些信息会和你保存时一样完全被恢复。它是比较重要的概念,因为它是RMI和JavaBean的基础。