20200204——java基础 单例模式

所谓单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只存在一个实例对象,并且该类只提供一个取得其对象的实例的方法。如果我们要让类在一个虚拟机中只生产一个对象。我们首先必须将类的构造方法的访问权限设置为private,这样就不能用new操作符在类的外部生产类的对象,但是在类的内部仍可以生产该类的对象,因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。

/**
 * @Classname TestSingleton
 * @Description TODO
 * @Date 2020/2/4 11:52
 * @Created by mmz
 */
public class TestSingleton {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1);
        System.out.println(s2);
    }
}

class Singleton{
    private Singleton(){

    }
    private   static Singleton singleton = new Singleton();
    public  static Singleton getInstance(){
        return singleton;
    }
}

懒汉模式:可能存在线程安全问题

class Singleton1{
    private static Singleton1 instance = null;
    private Singleton1(){

    }
    public static Singleton1 getInstance(){
        if(instance == null){
            instance = new Singleton1();
        }
        return instance;
    }
}

饿汉式就是自己在声明变量的时候,用构造方法new出来一个对象

发布了716 篇原创文章 · 获赞 41 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_36344771/article/details/104167168
今日推荐