public class TestClass(){
public static void main(String []args) {
TestClass t1 = new TestClass();
t1.anything();
}
}
在同一个类的定义中创建一个对象不奇怪吗?因为然后作为响应——这个对象创建一个新对象,然后这个新对象创建另一个对象,无限循环开始永不结束,直到内存已满。
原文由 Ravi Kumar Mistry 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,主要方法只在您运行程序时运行一次。它不会再次执行。因此,该对象只会被创建一次。
想想你的主要方法是在你的课堂之外。这会创建您的类的一个实例,并使用创建的实例。因此,当您从
main
方法创建实例时,将调用构造函数来初始化实例的状态,然后当构造函数返回时,将执行 main 方法的下一条语句。实际上,您可以考虑
main
方法不要成为类实例状态的一部分。但是,如果您在构造函数(比如 0-arg)中创建了类的实例,并将引用作为实例引用变量,那么这将变成无限递归。