码迷,mamicode.com
首页 > 其他好文 > 详细

序列化

时间:2019-09-01 21:39:45      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:生成   添加   nal   异常   反射   java   ansi   参数   transient   

序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

 

通过实现Serializable接口来达到目的

transient 修饰的属性,不会被序列化

静态static的属性,不序列化

需要显式的声明serialVersionUID这个属性,如果不声明,java会自动赋值,但会与反序列化时生成的UID不同,会抛出异常

private static final long serialVersionUID = 1L;

 

序列化会通过反射调用无参数的构造方法创建一个新的对象,对单例进行了破坏

在单例类中添加定义readResolve即可解决

private Object readResolve() {
    return singleton;
}

  

序列化的文件中的数据为明文存储,存在一定的安全风险,需谨慎使用

方序列化时,如cookie,可能会出现客户端篡改权限的问题

 

protobuf

 

序列化

标签:生成   添加   nal   异常   反射   java   ansi   参数   transient   

原文地址:https://www.cnblogs.com/jhin-wxy/p/11443536.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!