22.序列化

序列化和反序列化:
  • 序列化:

指把堆内存中的Java对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络的节点(在网络上传输).我们把这个过程称之为序列化.

  • 反序列化:

把磁盘中的对象数据或者把网络节点上的对象数据,恢复成Java对象的过程.我们称之为反序列化.

为什么要做序列化:

在分布式系统中,需要共享的数据的JavaBean对象,都得做序列化.此时需要把对象在网络上 传输,此时就得把对象数据转成二进制形式.以后存储在HttpSession中的对象,都应该事先序列化接口(只有事先序列化接口的类才能做序列化操作).

服务器钝化:如果服务器发现某些对象好久都没有活动了,此时服务器就会把这些内存中 的对象,持久化在本地磁盘文件中(Java对象-->二进制文件).如果某些对象需要活动的时候,先在内存中去寻找,找到了就不再去磁盘中,反序列化我们的对象数据,恢复成java对象.

需要做序列化的对象的类,必须实现序列化接口:java.io.Serializable(标志接口,没有抽象方法)

//底层会判断,如果当前对象是Serializable的实例,才允许做序列化
boolean ret = Java对象 instanceof Serializable;

在Java中大多数类都已经 实现Serializable接口.

你可能感兴趣的:(22.序列化)