public class HungerSingleton {
//private:将这个对象私有化,不让外部直接访问,同时提供getInstance()方法来获得单例对象。
// static:如果没有这个static的话getInstance函数中的hungerSingleton出现错误,获取不到对象。
// 因为此时还没有创建实例,要想在类中使用到hungerSingleton,就要加上static使其变成类变量。
//同时记住如果一个类的成员变量是自己的实例,调用这个类创建对象的时候会产生死循环!例子如下:
//不断的创建A类的对象导致内存溢出Exception in thread "main" java.lang.StackOverflowError
/*public class Test {
public static void main(String[] args) {
A another = new A();
}
}
class A{
public A a=new A();
public A(){}
}*/
private static HungerSingleton hungerSingleton=new HungerSingleton();
public static HungerSingleton getInstance(){
return hungerSingleton;
}
//构造方法私有化,只开发一个getInstacnce()接口
private HungerSingleton(){}
public static void main(String[] args) {
for(int i=0;i<10;i++){
new Thread(()->{
System.out.println(HungerSingleton.getInstance());
}).start();
}
}
}