zoukankan      html  css  js  c++  java
  • 序列化

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

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

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

    静态static的属性,不序列化

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

    private static final long serialVersionUID = 1L;

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

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

    private Object readResolve() {
        return singleton;
    }
    

      

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

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

    protobuf

  • 相关阅读:
    线程原理 创建方式
    Chapter17 【异常、线程】
    驱动
    java中Super到底是什么意思
    Java 8后的首个长期支持版本Java 11
    OpenJDK和JDK区别
    异常
    模拟斗地主洗牌发牌
    Debug追踪
    Python 垃圾回收机制详细
  • 原文地址:https://www.cnblogs.com/jhin-wxy/p/11443536.html
Copyright © 2011-2022 走看看