问题描述
代码如下:public class Test{Test t = new Test();public static void main(String[] args){Test t = new Test();}} 想请问一下,程序为何会报错误:Exception in thread "main" java.lang.StackOverflowError; 堆栈溢出了;据我测试得到的结果是:上面那行初始化代码一直循环执行导致堆栈溢出,想知道为什么? PS:第一次在ITeye发帖,以前是在CSDN发帖,如有不对的地方,请指出;
解决方案
你说的没错,请看下面的报错信息。代码从main入口进入,实例化Test()类,发现有Test类型的属性,于是实例化该属性,于是就进入了无暇循环中了。直到报溢出异常。引用Exception in thread "main" java.lang.StackOverflowErrorat Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)at Test.<init>(Test.java:6)我把代码加上显示构造函数,debug模式运行,你可以更直观看到原因:public class Test {public Test(){System.out.println("我在实例化");}Test t = new Test();public static void main(String[] args) {System.out.println("begin");Test t = new Test();}}
解决方案二:
从代码分析过程,在Test类中定了一个Test对象,比将其实例化,在主函数main方法中,定义了Test对象并实例化后,执行程序将进入Test对象中初始化对象的方法和属性,在初始化过程中又出现了创建Test实例对象,因此,程序不多的循环,知道jvm中分配的堆内存使用完,不能够在进行分配内存空间给新建的Test对象,从而抛出内存溢出异常。
解决方案三:
JAVA中初始化的顺序: 加载类、 静态成员变量初始化、 静态代码块、非静态成员变量初始化、 构造方法。后两个是对象的初始化时初始化的。你的main方法里new Test() ,new了一个Test对象,想要完成Test对象的初始化,就得初始化它的非静态成员变量,于是你又new了一个Test对象,想要完成第二个Test对象的初始化你就得初始化它的非静态成员变量...如此下去 ,你会一直new Test对象,你的栈内存就满了。http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5.2
解决方案四:
首先,java产生StackOverflowError的原因是什么?简单来说,就是死循环。循环的嵌套层数达到了环境的设定值。回到你的问题上那是因为你不断在new出得Test的。
解决方案五:
1、进入当前类构造方法。2、进入父类构造方法递归直到java.lang.Object类构造方法。3、执行java.lang.Object类构造方法,顺序依次为成员变量初始与初始化块(安装上下文顺序),对应调用的构造方法体。4、执行java.lang.Object类的直接子类的构造函数,这个过程递归到当前类。5、当前类执行顺序与前面java.lang.Object类相同。构造方法的本质其实就是一个普通的无返回参数的名字叫做<init>的方法,不过虚拟机调用这个方法的指令与其它方法不同而已,它的调用指令与调用private方法的指令相同。在虚拟机中存在三种方法的调用指令,这三种调用指令在效率上不同。接口方法的指令调用,这种调用速度最慢。普通类方法的调用指令,这种调用速度中等。构造方法与私有方法调用指令,这种调用速度最快。从以上回答,楼主兄弟,应该知道你的问题出在那里了吧
解决方案六:
属性不是基本类型你就直接实例化,必须放到static 或方法里面啊。。。
解决方案七:
你每次在加载类的时候new了本类 所以在主入口函数运行 就进入死循环 理论指导就好 如果有兴趣可以去研究下java jvm