public class A { A a=new A(); public static void main(String[] args) { A a1 = new A(); } }
为什么不是堆益处,而是stackoverflow
默认,栈大小比堆大小,小很多
main方法实例化A对象,成员变量又会实例化A对象,所以出现递归实例化,栈帧过多,而栈的默认内存大小是很小的远比堆空间小的多,所以你这样的创建不会导致堆溢出,只会把当前栈占满