序列化
Posted jhin-wxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化相关的知识,希望对你有一定的参考价值。
序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
通过实现Serializable接口来达到目的
transient 修饰的属性,不会被序列化
静态static的属性,不序列化
需要显式的声明serialVersionUID这个属性,如果不声明,java会自动赋值,但会与反序列化时生成的UID不同,会抛出异常
private static final long serialVersionUID = 1L;
序列化会通过反射调用无参数的构造方法创建一个新的对象,对单例进行了破坏
在单例类中添加定义readResolve即可解决
private Object readResolve() return singleton;
序列化的文件中的数据为明文存储,存在一定的安全风险,需谨慎使用
方序列化时,如cookie,可能会出现客户端篡改权限的问题
protobuf
以上是关于序列化的主要内容,如果未能解决你的问题,请参考以下文章
Netty_05_六种序列化方式(JavaIO序列化 XML序列化 Hessian序列化 JSON序列化 Protobuf序列化 AVRO序列化)(实践类)
Netty_05_六种序列化方式(JavaIO序列化 XML序列化 Hessian序列化 JSON序列化 Protobuf序列化 AVRO序列化)(实践类)