• 单例模式


    延迟加载与线程安全

    /**
     * @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从根本上提供保障,绝对防止多次实例化,是更简洁、高效、安全的实现单例的方式。

  • 相关阅读:
    Misc1
    PXE
    VCL
    pacman usage
    .vimrc的配置
    Windows Server 2012 R2
    Windows 入门杂乱无章版
    VS Code Plugins And Configuration
    「Poetize5」GF弹钢琴
    「Poetize4」上帝造题的七分钟2
  • 原文地址:https://www.cnblogs.com/oldzhang1222/p/10095650.html
Copyright © 2020-2023  润新知