Java 实现栈溢出,堆溢出,堆外内存例子

java

  • idea vm参数设置

  

  • 栈溢出(其实就是递归调用没结束)

       public  static  void  stackOverFlow(){

    stackOverFlow();

    }

 

  • 堆溢出

       static class TestBean{}

    /**

    *

    * 堆溢出 Java heap space

    */

    public static void outOfMemory(){

    try {

    while (true){

    list.add( new TestBean());

    }

    }catch (Exception e){

    System.out.println(e);

    }

    }

  • 运行是常量异常

      static  List  arrayList=new ArrayList();

    public static void outOfMemoryPremGen(){

    int i=0;

    while (true){

    list.add(String.valueOf(i++).intern());

    }

    }

  • Unsafe 分配堆外内存(java nio就是这样实现)

    //Unsafe 分配内存

    private static final Unsafe unsafe = Unsafe.getUnsafe();

    private final static int size=1024*1024;

    public static void getSyseMmory(){

    while (true){

    unsafe.allocateMemory(size);

    }

    }

 

以上是 Java 实现栈溢出,堆溢出,堆外内存例子 的全部内容, 来源链接: utcz.com/z/389753.html

回到顶部