一、什么是序列化
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
在计算机中文本、图片、音频、视频都是以二进制序列的形式存储和传输,序列化可简单理解为将对象转变为二进制序列存储传输的一种方法。
二、那么实体类为什么需要序列化
客户端开启某个会话功能时,web服务器就会创建一个与该客户端对应的HttpSession对象,这样会占用一定的内存空间,大量不活动但是未超时的HttpSession对象会对内存空间造成大量浪费,为了解决这种情况,我们可以将不活动但是未超时的这种HttpSession对象通过序列化转移到文件系统或数据库中保存,当服务器需要使用的时候在将他们反序列化恢复取出载入内存。
三、怎么实现
对象序列化包括如下步骤:
1) 创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;
2) 通过对象输出流的writeObject()方法写对象。
对象反序列化的步骤如下:
1) 创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;
2) 通过对象输入流的readObject()方法读取对象。
import java.io.Serializable;
public class Person implements Serializable {
/**
* 序列化ID
*/
private static final long serialVersionUID = -5809782578272943999L;
private int age;
private String name;
private String sex;
public int getAge() {
return age;
}
public String getName() {
return name;
}
public String getSex