package dxz.base;
public class B {
B b = new B();
}
package dxz.base;
public class Test {
/** * @param args */
public static void main(String[] args) {
// TODO Auto-generated method stub
B b = new B();
}
}
结果:
Exception in thread "main" java.lang.StackOverflowError
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
at dxz.base.B.<init>(B.java:4)
当Stack满了就抛出error了。 所以才发生了上面的java.lang.StackOverflowError 溢出错误.
注意:是递归的错误,才出现Stack满的情况,而无限循环一般不会占用更多的内存或者具体的Stack,只是占cpu而已,所以不会抛此错误。