为了账号安全,请及时绑定邮箱和手机立即绑定

在一个类中定义本身的实例对象时为什么要加static?

class A{
    int i=0;
    A(){
        System.out.println("make a A");
    }
    A a=new A();
}
class B{
    int i=0;
    B(){
        System.out.println("make a B");
    }
    static B a=new B();
}

class A创建实例时会发生栈溢出,原因是循环定义,而为什么class B实例化时,不会报错


正在回答

2 回答

static 让B实现了单例,也就是说在虚拟机中实际上只是实例化两次。


而A是一个相当于无限循环的实例化

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在一个类中定义本身的实例对象时为什么要加static?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信