java对象序列化

序列化的作用 是把java对象转化为二进制的字节流。从而便于java对象的存储和在网络上进行点到点间的传递。。。。

常用于分布式系统中。。。

编码模式化,主要变更在于不同情景下对输入输出流的选择。

  • 对象实现Serializable接口。
  • 序列化:
    ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("user.s")); out.writeObject(new User()); out.close();
  • 反序列化:      

        ObjectInputStream oin = new ObjectInputStream(new FileInputStream( "user.s")); User user = (User)         oin.readObject(); oin.close();

注意事项:

  1.     serialVersionUID 变量 是用来唯一标识序列化对象的。(比较时注意)
  2.     序列化的受体是 对象;而非 类。所以 static变量不会被序列化。
  3.     对声明为 Transient 的变量 不做序列化。

  4.     子类可序列化,父类不可序列化情况下,由父类中继承来的变量 不做序列化。

  5.     将序列化的对象中如果含有 未实现Serializable接口的对象 ,序列化时会 出错。
  6.     序列化多个对象的时候,注意文件不要重名。
  7.     对传输或存储过程中需要特殊处理的 可以 通过重写 writeObject 、readObject来实现。。。
  8.     安全隐患:对于序列化后的对象不再具有安全保护域 如 private变量。。。  
  9.     包含线程的对象 不可序列化。。。。

           

你可能感兴趣的:(java对象序列化)