单例模式

1.饿汉式单例:在初始化内存时就会生成一个对象,需要调用对象时将它返回出去
2.懒汉式单例:在初始化时不会加载对象,在调用方法时才会生成一个对象,并将它返回出去

package study02;

public class Singleton {

    //饿汉式单例,在初始化内存时加载到内存中,即使不用他也会占用内存但是线程安全
    private static final Singleton SINGLETON= new Singleton();

    //将构造方法设置为private,防止外部调用
    private Singleton() {
    }

    public static Singleton getSingleton(){
        return SINGLETON;
    }
}
package study02;

public class Singleton2 {

    //在初始化时不生成静态对象
    private static Singleton2 SINGLETON_2;

    //将构造方法设置为private,防止外部调用
    private Singleton2(){}

    //懒汉式单例,在调用方法时再生成对象,它不调用时不占用内存空间,但是线程不安全
    public static Singleton2 getSingleton2(){
        if (SINGLETON_2==null){
            SINGLETON_2 = new Singleton2();
        }
        return SINGLETON_2;
    }
}

 

posted @ 2021-03-08 11:07  温柔Rarry  阅读(33)  评论(0)    收藏  举报