单例模式

package test01;

public class SingleInstanceTest {
    public static void main(String[] args){
        SingleInstance s1 = SingleInstance.getInstance();
        SingleInstance s2 = SingleInstance.getInstance();
        System.out.println(s1==s2);
    }


}

package test01;

//2018
public class SingleInstanceTest {
    public static void main(String[] args){
        SingleInstance2 s1 = SingleInstance2.getInstance();
        SingleInstance2 s2 = SingleInstance2.getInstance();
        System.out.println(s1==s2);
    }


}
//饿汉模式单例模式
class SingleInstance {
    //把构造器私有,构造器只能在本类中访问

    private SingleInstance(){

    }
     //定义静态成员变量用于存储一个对象
    public static SingleInstance ins =  new SingleInstance();
    //提供一个方法返回实例对象
    public static SingleInstance getInstance(){
        return  ins;
    }
}
//懒汉模式创建
class SingleInstance2{
    //第一步先把构造器私有
    private SingleInstance2(){

    }
    //第二步定义一个静态成员存储对象
    public static SingleInstance2 ins;

    //如果对象不存在则创建,延迟加载,节约性能
    public static SingleInstance2 getInstance(){
        if(ins==null){
            ins = new SingleInstance2();
        }
        return  ins;
    }
}

单例模式(图1)

您可能还会对下面的文章感兴趣: