今天发现了一个很有趣的问题:
<pre name="code" class="java">public class A {
A a = new A();
public A() {
super();
System.out.println("Hello world!");
}
public static void main(String[] args) {
new A ();
}
}
输出的结果是Exception in thread "main" java.lang.StackOverflowError;因为类A里的new A()会被放在构造函数里面执行,然后构造函数不断的对A类的引用在栈里面进行递归创建,最终导致内存不足,栈溢出。