设为首页 加入收藏

TOP

JAVA序列化Serializable与Externalizable的区别
2014-11-20 14:07:21 】 浏览:1940
Tags:JAVA 序列化 Serializable Externalizable 区别

  大家都知道Serializable是一个mark interface,告诉JVM这个对象可以被转换成二进制流来传输.


  但是Serializable与Externalizable的转换二进制流的过程是不一样的.


  Serializable 在我们实现这个接口的时候,我们可以使用4个私有方法来控制序列化的过程:


  我们来看一个例子:


  Java代码


  public class FooImpl implements java.io.Serializable{


  private String message;


  public String getFoo() {


  return message;


  }


  public void setMessage(String message) {


  this.message = message;


  }


  private void writeObject(java.io.ObjectOutputStream out) throws IOException {


  System.out.println("writeObject invoked");


  out.writeObject(this.message == null "hohohahaha" : this.message);


  }


  private void readObject(java.io.ObjectInputStream in) throws IOException,


  ClassNotFoundException {


  System.out.println("readObject invoked");


  this.message = (String) in.readObject();


  System.out.println("got message:" + message);


  }


  private Object writeReplace() throws ObjectStreamException {


  System.out.println("writeReplace invoked");


  return this;


  }


  private Object readResolve() throws ObjectStreamException {


  System.out.println("readResolve invoked");


  return this;


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java.util.Collections类 下一篇Java标准输出重定向到GUI

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目