一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中內存異常StackOverflowError與OutOfMemoryError詳解

Java中內存異常StackOverflowError與OutOfMemoryError詳解

2020-08-30 10:54wangshuang1631 Java教程

這篇文章主要介紹了 Java中內存異常StackOverflowError與OutOfMemoryError詳解的相關資料,需要的朋友可以參考下

 Java內存異常StackOverflowError與OutOfMemoryError詳解

使用Java開發,經常回遇到內存異常的情況,而StackOverflowError和OutOfMemoryError便是最常遇見的錯誤。
首先,看看這兩種錯誤的解釋:

如果當前線程請求的棧深度大于虛擬機所允許的最大深度,將拋出StackOverflowError異常。 如果虛擬機在擴展棧時無法申請到足夠的內存空間,則拋出OutOfMemoryError異常。

這里把異常分為兩種情況,但是存在一些相互重疊的地方:當棧空間無法繼續分配時,到底是內存太小,還是已經使用的棧空間太大,本質上是對同一個問題的兩種描述而已。

接下來,兩個小例子分別展示如何產生這兩種異常:

OutOfMemoryError異常:

首先設置一下虛擬機啟動參數,如下:

Java中內存異常StackOverflowError與OutOfMemoryError詳解

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.ArrayList;
import java.util.List;
 
public class TEST1 {
  static class OOMObject{
  }
  public static void main(String[] args) {
    List<OOMObject> list = new ArrayList<OOMObject>();
    while(true){
      list.add(new OOMObject());
    }
  }
}

錯誤信息入下:

?
1
2
3
4
5
6
7
8
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
  at java.util.Arrays.copyOf(Unknown Source)
  at java.util.Arrays.copyOf(Unknown Source)
  at java.util.ArrayList.grow(Unknown Source)
  at java.util.ArrayList.ensureExplicitCapacity(Unknown Source)
  at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
  at java.util.ArrayList.add(Unknown Source)
  at com.ws.TEST1.main(TEST1.java:13)

StackOverflowError異常:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class TEST2 {
  private int stackLength = 1;
  public void stackLeak() {
    stackLength++;
    stackLeak();
  }
  public static void main(String[] args) {
    TEST2 oom = new TEST2();
    try {
      oom.stackLeak();
    } catch (Throwable e) {
      System.out.println("stack length:" + oom.stackLength);
      throw e;
    }
  }
}

錯誤信息如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
stack length:7585
Exception in thread "main" java.lang.StackOverflowError
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
  at com.ws.TEST2.stackLeak(TEST2.java:8)
......

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/wangshuang1631/article/details/53763641

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产色视频一区二区三区 | 无码精品一区二区三区免费视频 | 成人精品在线 | 青青成人| 日本男男漫画 | 日本视频在线免费看 | 9久热久爱免费精品视频在线观看 | 2021小妲己永久回家地址 | 特黄特黄一级高清免费大片 | 海绵宝宝第二季全集免费观看 | 男同精品视频免费观看网站 | 国产玖玖在线 | 99热精品久久 | 嫩草影院精品视频在线观看 | 男生操女生的漫画 | 521色香蕉网在线观看免费 | 精品女同一区二区三区免费站 | 国产精品久久久久jk制服 | 天堂在线中文无弹窗全文阅读 | 天天舔天天干 | 成人α片| 精品国产乱码久久久久久软件 | 四虎影视网址 | 9999热视频 | 成人免费观看一区二区 | 久99视频精品免费观看福利 | www.一区 | 短篇艳妇系列 | 国产资源在线视频 | 视频一区国产精戏刘婷 | 国产成人盗拍精品免费视频 | 国语自产拍在线播放不卡 | 荡女人人爱 | 国产情侣自拍网 | 华人在线京东热 | 四虎永久成人免费 | 免费一区二区 | 四虎黄色影视库 | 免费看黄色片网站 | 四虎黄色网址 | 欧美大陆日韩一区二区三区 |