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次数的危险。

08-16 16:37