单例模式

单例模式的两种情况:饿汉模式,懒汉模式.

//懒汉模式
public class a{
    public static void main(String[] args){
        
    }
    private a(){// 1 创建私有化的构造方法  外部就不能 直接访问了 就不能直接实例化当前类对象了

    }
    private static a b = null; // 2 创建 静态变量 用来保存对象内存地址的  注意数据类型 要和类名相同,因为内存地址是类名数据类型的
    public static a m1(){//静态方法 , 让外部 可以通过调用这个方法  就能 实例化这个类对象
        if (b==null) {//我只想让它实例化一次 所以判断 ,当我b为空的时候,在执行以下java语句,当b不为空的时候,就跳过,直接输出后面的java语句
              b = new a();//实例化当前类对象 并赋值给 b  
              return b;//返回值,把b里面的内存地址 返回到方法名 外部直接调用方法,就能获取本类的内存地址
        }  
        return b;//当b不为空的时候,就直接返回值 把 b返回到方法名  所以 这个类的对象,只实例化了一次吧
    }
}
//饿汉模式
public class a{
    private a(){//私有化无参构造

    }
    private static a b = new a();  //声明静态变量 并赋值 值为本类的内存地址
    public static a m1(){//静态方法  外部可以通过调用次方法 获得本类的内存地址
        return b;//返回值 b b保存的是内存地址  所以返回 b  就能把内存地址 返回到方法 外部就能使用了
    }
    public static void main(String[] args){
        
    }
}

写的不是很详细,只是举了两个例子,总结一下,有不好的请多多提出宝贵意见.

原文地址:https://www.cnblogs.com/xrmqbl804915256/p/4735289.html