1、什么是Java序列化与反序列化
Java序列化是指把Java对象保存为二进制字节码的过程,Java反序列化是指把二进制码重新转换成Java对象的过程。
2、为什么要序列化
- 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中。
- 在网络上传送对象的字节序列。
- Android里面Activity之间对象传值。
3、如何实现序列化
4、未设置serialVersionUID,修改User类属性对应的UID发生变化,反序列化失败
如果我们把User实体添加属性private String address,User类对应的SerialversionUID也变化了,而序列化和反序列化就是通过对比其SerialversionUID来进行的,一旦SerialversionUID不匹配,反序列化就无法成功,当我修改属性执行反序列化时会报以下异常:
java.io.InvalidClassException: com.hy.android.bean.User; local class incompatible: stream classdesc serialVersionUID = -6719585433480520072, local class serialVersionUID = -2385832899578140463
5、设置serialVersionUID后,修改类改User类属性,反序列化成功