小编Sib*_*tro的帖子

为什么在实例中创建非静态实例时会发生堆栈溢出错误?

为什么在同一个类的实例中创建非静态实例时会发生堆栈溢出错误?

public class ObjectTest {
    ObjectTest instanceObj = new ObjectTest("Outside");

    public ObjectTest(String s) {
        System.out.println(s);
    }

    public static void main(String[] args) {
        ObjectTest localObj = new ObjectTest("Inside");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是通过以下修改可以解决问题:

static ObjectTest instanceObj = new ObjectTest("Outside");
Run Code Online (Sandbox Code Playgroud)

可以理解的是,在将新对象分配给instanceObj引用时,在第一种情况下发生循环依赖

谁能澄清整个事情?为什么静态引用循环依赖不会发生?

java stack-overflow

-2
推荐指数
1
解决办法
93
查看次数

标签 统计

java ×1

stack-overflow ×1