class firsttry{
public static void main(String [] args){
int a=10;
firsttry first = new firsttry();
first.calculate(a);
}
public void calculate(int b){
for(int i=0;i<10;i++){
System.out.println(b);
b+=10;
}
}
}
我已经运行了程序,它运行正常。我想知道这怎么可能。它不分配无限内存。
"first"
对象本身内部具有"first"
对象,依此类推。请解释。 最佳答案
main
是静态方法,因此不需要任何firsttry
类型的对象实例(即,不创建任何firsttry
类型的对象)。特别是,当您创建类型为main
的新对象时,不会调用firsttry
,因此,仅new
调用执行一次。
如果在类new firsttry(..)
的构造函数中包含firsttry
,则确实存在执行infinite
次数的危险。