Java里面每个线程都有独立的、固定大小的栈空间, Java在解释执行的时候采用的是栈式的架构。

方法调用、方法内的局部变量都是在栈空间申请的。

空间的大小依赖于JDK版本,JDK1.6应该是512K,超过了这个空间就会产生StackOverFlow。

不断的递归会使栈空间不断增大 导致 溢出。 

原文地址:https://www.cnblogs.com/nulisaonian/p/6100801.html