public class Demo1 {
public static void main(String[] args) {
/*System.out.println(Demo2.getInstance());
System.out.println(Demo2.getInstance());*/
System.out.println(Demo3.getInstance());
System.out.println(Demo3.getInstance());
}
}
//饿汉式
class Demo2{
private static Demo2 demo2=new Demo2();
public static Demo2 getInstance(){
return demo2;
}
private Demo2(){
System.out.println(“dididi”);
}
}
//懒汉式
class Demo3{
private static Demo3 demo3;
public static Demo3 getInstance(){
if(demo3==null){
demo3=new Demo3();
}
return demo3;
}
private Demo3(){
System.out.println(“dididi”);
}
}
一个类只能调用一次单例模式,通过构造方法打印次数来判断调次数,
不能通过打印类的16进制判断。
小提示: 懒汉式会出现线程安全问题,我们一般在方法上加上锁(synchronized)来保证线程安全。