Java单例设计模式

2021-06-22  本文已影响0人  情安

饿汉式

//这个类用来测试单例设计模式--饿汉式
public class Singleton_ {
    public static void main(String[] args) {
        Mysingle m = Mysingle.getSingle();
        System.out.println(m);
    }
}
//创建自己的单例程序
class Mysingle{
    //私有化构造方法,不让外界随意new
    private Mysingle(){}
    //在类的内部,提供一个已经创建好的对象
    //static是因为 静态资源getSingle()只能调用静态
    private static Mysingle single = new Mysingle();
    //对外提供一个全局访问点
    public static Mysingle getSingle(){
        return single;//把内部创建好的对象返回调用位置
    }
}

懒汉式--常用

延迟加载思想:是指不会第一时间就把对象创建好来占用内存,而是什么时候用什么时候创建。
线程安全问题:是指共享资源有线程并发的数据隐患,加同步锁,锁方法,也可以锁代码块。

//这个类用来测试单例设计模式 -- 懒汉式
public class Single2 {
    public static void main(String[] args) {
        MySingleton m = MySingleton.getMy();
        System.out.println(m);
    }
}
class MySingleton{
    private MySingleton(){}
    private static MySingleton my; //延迟加载!
    synchronized public static MySingleton getMy(){
        if (my == null){
            my = new MySingleton();
        }
        return my;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读