嗨,有人可以解释一下为什么这段代码会给我 StackOverflowError 错误吗? 如果您能解释 instanceObj 初始化并调用 ObjectTest 构造函数和 java.lang.Object 构造函数时发生的情况,我真的很感激。在我看来,ObjectTest 构造函数一遍又一遍地循环。但我不知道确切的原因?所以有什么建议...
<小时/>public class ObjectTest {
public ObjectTest() {
}
ObjectTest instanceObj = new ObjectTest();
public static void main(String[] args) {
ObjectTest localObj = new ObjectTest();
}
}
最佳答案
您调用构造函数来创建对象的新实例。它有对另一个实例的引用,您可以使用另一个新的 ObjectType 实例来初始化该实例,而该实例又会执行相同的操作。在出现该错误之前,需要进行无数次调用。
这会起作用。
public class ObjectTest {
public ObjectTest() {
}
public static void main(String[] args) {
ObjectTest localObj = new ObjectTest();
}
}
关于创建本地和实例对象时出现 java StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3679832/