java 对象序列化的两种方法

 1、 对象序列化 实现Serializable接口 将对象输出倒对象流中(相当于深克隆,能从对象流中读出整个对象网络)
  将一个对象 将对象序列化倒一个对象流中两次,
   再从对象流中读出,取出的两个对象指向同一个对象(与序列化之前的对象不一致,相当于克隆)
   将一个对象序列化倒两个对象流中,再次取出时两个对象不一致
   
  2、 不可控的序列化 实现 Serializable 接口 标记对象可序列化
   java虚拟机将整个对象信息写入流中     从对象流中读出对象信息并自动构建新的对象
  将对象的属性声明为transient 表示属性是临时的  序列化时 不会将此属性写入对象流中
  如  用户类中的密码属性声明为transient防止对象流中的关键信息被网络拦截而泄漏。
   
   
  3、 可控的序列化 实现 Externalizable 接口
   在实现的writeExternal(ObjectOutput out) 方法中控制 写入的对象属性
   在实现的readExternal(ObjectInput in) 方法中读出对象属性
   java虚拟机调用writeExternal将可控的对象信息写入流中
      调用 readExternal方法读出对象流中的对象信息并自动构建新的对象

猜你喜欢

转载自blog.csdn.net/ld2007081055/article/details/10085199
今日推荐