Java学习笔记-两种单例设计模式

单例设计模式之懒汉式

package singleTon;
public class singleTon {
    public static void main(String[] args) {
        lazy_man lm1 = lazy_man.getHm();
        lazy_man lm2 = lazy_man.getHm();
        System.out.println(lm1 == lm2);
    }
}

//懒汉式,线程不安全
class lazy_man{
    //1,使构造函数私有化
    private lazy_man(){
    }
    //2,定义私有化静态类对象,不进行构造(懒汉,需要的时候才分配内存)
    private static lazy_man hm = null;
    //3,定义静态公开接口,使外部通过类取得对象
    public static lazy_man getHm(){
        if (hm == null){
            hm = new lazy_man();
        }
        return hm;
    }
}

单例设计模式之饿汉式

package singleTon;
public class singleTon {
    public static void main(String[] args) {
        hungre_man hm1 = hungre_man.getHm();
        hungre_man hm2 = hungre_man.getHm();
        System.out.println(hm1 == hm2);
    }
}

//饿汉式
class hungre_man{
    //1,使构造函数私有化
    private hungre_man(){
    }
    //2,定义私有化静态类对象,进行构造对象(饿汉,上来就要内存)
    private static hungre_man hm =  new hungre_man();
    //3,定义静态公开接口,使外部通过类取得对象
    public static hungre_man getHm(){
        return hm;
    }
}

你可能感兴趣的:(java)