Serializable接口
- java.io.Serializable
- 序列化接口没有方法或字段,仅用于标识可序列化的语义。
- 一个类只有实现了Serializable接口,它的对象才能被序列化
序列化
- 序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
- 序列化:把对象转换为字节序列的过程称
- 反序列化:把字节序列恢复为对象的过程
序列化原因
- 将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本
- 按值将对象从一个应用程序域发送至另一个应用程序域。实现serializabel接口的作用是就是可以把对象存到字节流,然后可以恢复
- 要持久化和网络传输就得转为字节流,所以在分布式应用中及设计数据持久化的场景中,就得实现序列化
使用
- 实现Serializable接口:
implements Serializable
- 定义serialversionUID变量:
private static final long serialVersionUID = 1L;
注意
- 在NoSql数据库中,并没有与我们java基本类型对应的数据结构,所以在往nosql数据库中存储时,我们就必须将对象进行序列化
- 同时在网络传输中我们要注意到两个应用中javabean的serialVersionUID要保持一致,不然就不能正常的进行反序列化。