问题描述
Test(inti){System.out.println(i);}Testt=newTest(2);publicstaticvoidmain(String[]args){Testt2=newTest(2);}
为什么Testt=newTest(2)和构造方法两者之间会无限循环?上面的运行会报“Exceptioninthread"main"java.lang.StackOverflowError”的异常。为什么把t定义成static就又没问题了(staticTestt=newTest(2);)啊
解决方案
解决方案二:
static是静态不属于某个对象,是属于类的,每个类对象都可以使用。静态的成员只会被加载一次。
解决方案三:
这道题相当于:publicclassTest{Testt=newTest();publicstaticvoidmain(String[]args){Testt=newTest();}}
解决方案四:
突然又想到这个问题了,堆栈溢出;
解决方案五:
静态的会在类生成的时候就创建并且之创建一次吧非静态你那就是循环了当然会重复调用
时间: 2024-11-05 12:08:54