zoukankan      html  css  js  c++  java
  • 单例模式(防止反序列化恢复对象)

    /**
     * 单例模式之防止利用反序列化恢复java对象
     *
     * @author Holley
     * @create 2018-07-05 9:49
     **/
    public class Singleton implements Serializable{
    
        private static Singleton instance;
        private String name;
        private Singleton(String name){
            System.out.println("调用有参数的构造器");
            this.name = name;
        }
        public static Singleton getInstance(String name){
            // 只有当instance为空时才创建该对象
            if(instance == null){
                instance = new Singleton(name);
            }
            return instance;
        }
        /**
          * @Author holley
          * @Description 通过readResolve方法来使反序列化恢复的对象和用new关键字创建的对象是同一个
          * @Date 2018/7/5 10:03
          * @Param
          * @return
          */
        private Object readResolve()throws ObjectStreamException{
            return instance;
        }
    }

    当jvm反序列化恢复一个新对象时,系统会自动调用这个readResolve()方法返回指定好的对象,从而保证不会生成多个新的对象

  • 相关阅读:
    with 上下文协议
    __del__
    描述符使用
    理解并发(Concurrency)和并行(Parallelism)
    理解ThreadLocal
    理解死锁的概念(实例)
    遇到的几种设计模式的应用
    面试题02
    操作 mysql练习14-16题
    mysql练习11-13题
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/9266824.html
Copyright © 2011-2022 走看看