java设计模式:单例模式的两种实现,饿汉式和懒汉式

        java单例模式是java设计模式中最为简单的设计模式之一,但是其在面试中出现的频率还是很高的,这里提供单例模式的两种实现方式,即饿汉式和懒汉式,便于复习。

        首先对单例模式做一个简单介绍,这种设计模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

饿汉式实现(不需要考虑线程安全问题):

public class SingletonTest1 {
    public static void main(String[] args) {
        SingleObject singleObject1 = SingleObject.getInstance();
        SingleObject singleObject2 = SingleObject.getInstance();
        //这里输出true,说明两次创建的是同一个对象
        System.out.println(singleObject1 == singleObject2);
    }
}

class SingleObject{
    private static SingleObject instance = new SingleObject();

    private SingleObject(){}

    public static SingleObject getInstance(){
        return instance;
    }
}

懒汉式实现(需要考虑线程安全问题):

public class SingletonTest2 {
    public static void main(String[] args) {
        SingleObject singleObject1 = SingleObject.getInstance();
        SingleObject singleObject2 = SingleObject.getInstance();
        //这里输出true,说明两次创建的是同一个对象
        System.out.println(singleObject1 == singleObject2);
    }
}

class SingleObject{
    private static SingleObject instance = null;

    private SingleObject(){}

    public static SingleObject getInstance(){
        if (instance == null){
            synchronized (SingleObject.class){
                if (instance == null){
                    instance = new SingleObject();
                }
            }
        }
        return instance;
    }
}

你可能感兴趣的:(java基础,java,单例模式,开发语言,面试)