为什么在同一类的实例中创建非静态实例时会发生堆栈溢出错误?
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");
}
}
但问题通过以下修改得到解决:
static ObjectTest instanceObj = new ObjectTest("Outside");
据了解,循环依赖在第一种情况下发生,同时将新对象分配给instanceObj
引用
任何人都可以澄清整个事情吗?为什么静态引用不会发生循环依赖??