本文想记录一下尝试产生stackoverflow的程序1 -Xss=1k, 设置stack大小1024个字节,产生515个long,想把stack撑爆。2 嵌套调用3 创建大量线程1 -Xss=1k, 设置stack大小1024个字节,产生515个long,想把stack撑爆。结 ...
本文想记录一下尝试产生stackoverflow的程序
1 -Xss=1k, 设置stack大小1024个字节,产生515个long,想把stack撑爆。
2 嵌套调用
3 创建大量线程
1 -Xss=1k, 设置stack大小1024个字节,产生515个long,想把stack撑爆。
结论:不可能
1 Java里面的stack是动态扩展的,不是固定设死的。因此无法实施
2 Java的对象都是引用,不会在栈上分配空间。这个从C++过来的人,一定要注意。
3 在有些操作系统上,分配的stacksize是固定的,容易撑爆stack。
1 public class MyMain { 2 3 public static void main(String[] args) { 4 5 System.out.println("stack overflow"); 6 7 //MyMain main; 这个是变量声明,不分配内存空间。 8 //long aa[] = {0,0,0,0,00,0,0,0,0,0,0,00,0,0}; 注意这个虽然是基本变量的数组,但是也是在heap 9 //String str = "hello world"; 这个是在方法区/常量区分配 10 11 long a0 = 0; 12 long a1 = 0; 13 long a2 = 0; 14 ......525
原标题:Java stackoverflow error
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。