美文网首页
Java单例

Java单例

作者: JoyDang | 来源:发表于2019-03-15 11:39 被阅读0次

    java单例模式是最常用到的设计模式之一,最基本的有懒汉式和饿汉式两种实现形式。单例的实现可以按下面两句话记
    1.构造方法私有化
    2.内部方法给出实例对象
    本文参考https://blog.51cto.com/aiilive/2164281文章所改。

    所以有如下几种方式比较适合

    1.饿汉式

    public class Singleton{
        private Singleton singleton=new Singleton();
        private Singleton(){
    
        }
        public Singletion getSingletion()
        {
            return singleton;
        }
    }
    

    这是最简单的一种方式:线程安全,但是没有使用懒加载
    测试方式

    //测试方法
    public static void main(String [] args){
        //输出:true 单例正确,否则错误
        System.out.println(Singleton.getInstance()==Singleton.getInstance()); 
    }
    

    2.双重加锁懒汉式单例

    public class Singletion{
        private static volatile Singletion singleton;
        private Singletion(){
    
        }
        public Singletion getSingletion(){
            if(singleton==null)
            {
                synchronized(singleton.class)
                {
                    return new Singletion();
                }
            }
            return singleton;
        }
    }
    

    双重加锁,线程安全。

    3.枚举单例

    enum Singletion{
        INCETANCE;
        public String method()
        {
            return "HELLOWORLD";
        }
    }
    public class instance{
        public static void main(String[] args) 
        {
           // System.out.println(Singletion.INCETANCE==Singletion.INCETANCE);
           System.out.println(Singletion.INCETANCE.method());
        }
    }
    

    相关文章

      网友评论

          本文标题:Java单例

          本文链接:https://www.haomeiwen.com/subject/slbhmqtx.html