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());
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容