java序列化与反序列化
2021-04-22 15:42:34 4 举报
java序列化与反序列化
作者其他创作
大纲/内容
User类serialVersionUID = 123
普通java对象保存在内存中序列化:将内存中的对象转换成二进制流,转换成二进制流之后可以进行持久化和网络传输。反序列化:将二进制流的数据转换成对象transient修饰的属性不可以被序列化或反序列化
2、json序列化序列化过程中抛弃了类型信息,所以反序列化时只有提供了准确的类型才能够准确地反序列化。json序列化工具:Jackson、fastjson。后端向前端发送的json就是实体转的json(json序列化)
serialVersionUID 不一致,异常
1、java原生序列化通过实现Serializable接口让对象可以实例化,建议设置serialVersionUID,不设置的话编译器会根据类的内部实现,包括类名、接口名、方法和属性等来自动生成serialVersionUID,源码被修改后serialVersionUID也会被改变。(即自定义serialVersionUID是固定的,编译器生成的是会变化的,所以需要手动添加serialVersionUID),可以使用idea自动生成serialVersionUID
反序列化字节流serialVersionUID = 123
serialVersionUID用于判断版本是否一致,在反序列化的时候,JVM会把字节流中的serialBersionUID与本地实体类的serialVersionUID进行比较,相同则可以进行序列化,否则会出现反序列化版本不一致的异常(InvalidCastException)。
反序列化字节流serialVersionUID = 456
成功
0 条评论
下一页