单例模式的两种情况:饿汉模式,懒汉模式.
//懒汉模式
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){
}
}
写的不是很详细,只是举了两个例子,总结一下,有不好的请多多提出宝贵意见.