单例模式之饿汉式

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();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值