//测试懒汉式跟饿汉式的区别
public class Test{
public static void main(String[] args){
Inner inner1=Inner.getInnerInstance();
System.out.println(inner1);
Inner inner2=Inner.getInnerInstance();
System.out.println(inner2);
Outer outer1=Outer.getOuterInstance();
System.out.println(outer1);
Outer outer2=Outer.getOuterInstance();
System.out.println(outer2);
}
}
//懒汉式
class Inner{
private static Inner inner;
private Inner(){}
public static Inner getInnerInstance(){
inner=new Inner();
return inner;
}
}
//饿汉式
class Outer{
private static Outer outer=new Outer();
private Outer(){}
public static Outer getOuterInstance(){
return outer;
}
}
/*运行结果: Inner@82b865
Inner@17fe89
Outer@17e5fde
Outer@17e5fde
由运行结果可看出:1.饿汉式是所有引用指向同一个对象,对象在堆内存中地址不变;
2.懒汉式是每建立一个对象堆内存中就新建一个对象,引用的地址随着变化,
都是对象唯一,但懒汉式在堆内存中会新建对象,即使新建对象后以前的对
象会被垃圾回收器清除。*/