本文想记录一下尝试产生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。

 public class MyMain {    

     public static void main(String[] args) {

         System.out.println("stack overflow");

         //MyMain main;   这个是变量声明,不分配内存空间。
//long aa[] = {,,,,,,,,,,,,,}; 注意这个虽然是基本变量的数组,但是也是在heap
//String str = "hello world"; 这个是在方法区/常量区分配 long a0 = ;
long a1 = ;
long a2 = ;
......
15 long a514 = ; } }

 2 嵌套调用

结论:可以撑爆stack

函数的嵌套调用是有深度的,如果结束条件设置不恰当,那么很容易stack overflow

public class MyMain {

    private static void foo(){
foo();
} public static void main(String[] args) { System.out.println("stack overflow"); foo(); } }

3 创建大量线程

结论:在我的机器上,没有观察到.

设置-Xss=100M,只看到内存100M的速度增加,但是增加到7.9G多的时候就不动了,没有发生OutOfMemoryError。这个原因目前还不清楚。

在书《深入理解java虚拟机》中提到可以观察到OutOfMemoryError。

public class MyMain {    

    public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("stack overflow"); while(true){ Thread th = new Thread(new Runnable(){ @Override
public void run() {
while(true){
System.out.println("do not stop");
}
} });
th.start(); } } }

Java stackoverflow error的更多相关文章

  1. idea报错:error java compilation failed internal java compiler error

    idea下面报如下问题 error java compilation failed internal java compiler error 解决办法:Setting->Compiler-> ...

  2. idea Error:java: Compilation failed: internal java compiler error

    idea 遇到Error:java: Compilation failed: internal java compiler error 是提示说你当前使用的编译器jdk版本不对. 按住Ctrl+Alt ...

  3. idea之internal java compiler error

    启动错误:Error:java: Compilation failed: internal java compiler error 解决:将圈选地方改为对应的jdk版本即可

  4. Error:java:Compilation failed: internal java compiler error

    在IDEA中编译时出现这个错误:Error:java:Compilation failed: internal java compiler error! Information:Using javac ...

  5. OFBIZ bug_ControlServlet.java:233:ERROR

    错误日志: [java] 2014-09-26 10:12:17,031 (http-bio-0.0.0.0-8443-exec-5) [ ControlServlet.java:233:ERROR] ...

  6. OFBIZ bug_ControlServlet.java:239:ERROR

    错误日志: [java] 2014-09-23 00:11:34,877 (http-bio-0.0.0.0-8080-exec-4) [ ControlServlet.java:141:INFO ] ...

  7. java 区分error和exception

    1) java.lang.Error: Throwable的子类,用于标记严重错误.合理的应用程序不应该去try/catch这种错误.绝大多数的错误都是非正常的,就根本不该出现的.java.lang. ...

  8. java中Error与Exception有什么区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object  java.lang.Throwable      java.lang.Er ...

  9. org.apache.axis2.AxisFault: java.lang.Error: Unresolved compilation problem:

    原创:转载请注明出处 今天遇到以下一个异常,找了好长时间,就是不知道什么原因, 在网上搜了好多,也没搜到相关的解决方法. 1.异常展示, org.apache.axis2.AxisFault: jav ...

随机推荐

  1. Linux NTP校时

    1.安装客户端(root权限运行) apt-get install ntpdate 2.修改配置文件:“/etc/default/ntpdate”,     NTPSERVERS="ntp. ...

  2. JAVA vo pojo javabean dto的区别

    JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性 ...

  3. jQuery技术内幕电子版4

    参数selector是复杂HTML代码 则利用浏览器的innerHTML机制创建DOM元素 第157行:如果HTML代码满足缓存条件,则在使用转换后的DOM元素时,必须先复制一份再使用,否则可以直接使 ...

  4. JavaScript高级程序设计34.pdf

    元素大小 偏移量 offsetHeight:元素在垂直空间上占用的大小,以像素计.包括元素的高度.(可见的)水平滚动条的高度.上边框高度和下边框高度. offsetWidth:元素在水平空间上占用的大 ...

  5. Bzoj 1901: Zju2112 Dynamic Rankings 树套树,线段树,平衡树,Treap

    1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 6471  Solved: 2697[Su ...

  6. JAVA Web项目的编码过滤器

    首先写一个EncodeFilter的过滤类: package com.djtu.wy.common; import java.io.IOException;import javax.servlet.F ...

  7. python-面向对象(四)——类成员的访问方式汇总

    类成员的访问方式 #!/usr/bin/env python # _*_coding:utf-8 _*_ class pepole(object): '''This is __doc__ inform ...

  8. Java SAX Schema Validation

    It is possible to turn on XML Schema validation during parsing with a SAXParser. Here is how it look ...

  9. hdoj 2816 I Love You Too

    I Love You Too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  10. PAT 1076. Forwards on Weibo (30)

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...