/**
* 单例模式 懒汉式(不安全)
*/
class Singleton {
// 1.声明一个私有变量
private static Singleton singleton;
// 2.私有化构造函数(防止被人可以new对象出来)
private Singleton(){};
// 3.对外暴漏获取对象的方法
public static Singleton getInstance(){
//如果对象为空,则创建。不为空,则返回
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
}
public class Test {
public static void main(String[] args) {
Singleton instance1 = Singleton.getInstance();
Singleton instance2 = Singleton.getInstance();
System.out.println(instance1 == instance2);//结果应该是true
System.out.println(instance1.hashCode() == instance2.hashCode());//结果应该是true
}
}
优点:懒加载,需要的时候才创建对象,不需要就不用创建,避免了资源浪费
缺点:这种写法是线程不安全的,只能在单线程下使用,多线程下不建议使用