zoukankan      html  css  js  c++  java
  • 单例模式

    延迟加载与线程安全

    /**
     * @author canger
     * @Deseription 利用类级内部类来实现延迟加载同时利用jvm保证线程安全
     * @create 2018/12/10 11:38
     **/
    public class Singletons {
    
        private Singletons() {}
    
        /**
         * 类级内部类,属于静态的成员内部类,与外部的实例没有绑定关系,只有在被调用的时候
         * 才会被装载,以此来实现懒加载模式
         */
    
        private static class  SingletonHolder{
            /**
             * 静态域只会在初次调用初始化,jvm内部保证线程安全
             */
            private static Singletons singleton = new Singletons();
        }
    
        public static Singletons getSingleton(){
    
           return SingletonHolder.singleton;
        }
    }

     通过枚举快速实现单例模式的延迟加载和线程安全()

    public enum Singleton {
    
        /**
         * 定义一个枚举。它代表了Singleton的一个实例
         */
        uniqueInstance;
    
        /**
         * 单例可以有自己的操作
         */
        public void singletonOperation(){
            //单例的功能实现
        }
    
    }

    使用枚举来实现单实例控制会更加简洁,而且无偿地提供了序列化机制,并由JVM从根本上提供保障,绝对防止多次实例化,是更简洁、高效、安全的实现单例的方式。

  • 相关阅读:
    第八周上机作业
    第七次作业
    第七周上机
    第六周作业
    4.9上机作业
    第五周作业
    第四周作业
    第二次上机作业
    第三周作业
    第九周上机练习
  • 原文地址:https://www.cnblogs.com/oldzhang1222/p/10095650.html
Copyright © 2011-2022 走看看