Java单例

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单例)