1. 序列化和反序列化有什么用?
序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
序列化可以把对象中的数据持久保存起来,保存到磁盘或者是网络传送对象。
2. 实现序列化
实现序列化的类要实现Serializable接口
3. 可能出现的问题
- 没有实现Serializable接口,会抛出NotSerializableException异常
- 类的串行版本与从流中读取的类描述符的类型不匹配,抛出InvalidClassException异常
- 该类包含未知的数据类型,抛出InvalidClassException异常
- 该类没有可访问的无参数构造函数,抛出InvalidClassException异常
4. 如何解决serialVersionUID不一致
声明显示的serialVersionUID,该字段必须时static,final和long类型
private static final long serialVersionUID = 42L;
5. 对象中的某个字段不想被序列化
使用transient关键字
private transient String password;