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单例模式——并非看起来那么简单 Java中单例(Singleton)模式是一种广泛使用的设计模...
    简书汪阅读 563评论 0 0
  • 原文出处:http://blog.csdn.net/goodlixueyong/article/details/5...
    晒晒太阳补补钙阅读 342评论 0 0
  • 一、前言 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为...
    manimaniho阅读 452评论 0 0
  • 0x00 从前在读Effective Java的时候,第一篇的Item 1:使用静态工厂方法而不是构造器的静态工厂...
    DrunkPian0阅读 236评论 0 0
  • 现在晚上十一点,我在听歌,没有喜欢的人,发呆也不知道想谁,很沮丧,也很开心——《陪我看日出》
    T无厘头阅读 214评论 0 1