public class A {
//2、定义一个变量存储类的对象
private static A a = new A();
//1、必须把类的构造器私有
private A(){
}
//提供一个类方法返回对象
public static A getObject(){
return a;
}
}
public class TestA {
public static void main(String[] args) {
A a1 = A.getObject();
A a2 = A.getObject();
//看是否同一个地址
System.out.println(a1);
System.out.println(a2);
System.out.println(a1 == a2);
}
}
运行示例:
四、懒汉式单例的特点是什么?
拿对象时,才开始创建对象。
代码示例:
public class B {
//2、定义一个类变量用于存储对象
private static B b;
//1、把类的构造器私有
private B(){
}
//3、提供一个类方法,保证第一次调用返回的是同一个对象,后面调用都会用这同一个对象返回
public static B getInstance(){
if (b == null){
b = new B();
System.out.println("第一次创建对象!!");
}
return b;
}
}
public class TestB {
public static void main(String[] args) {
B b1 = B.getInstance();//第一次拿
B b2 = B.getInstance();//第二次拿对象
//判断是不是同一个
System.out.println(b1);
System.out.println(b2);
System.out.println(b1 == b2);
}
}