激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品一区二区蜜臀亚洲 | 亚洲第一页中文字幕 | 欧美另类69xxxxx 视频 | 日日综合| 羞羞羞网站 | 美国一级黄色毛片 | 久久要| 国产精品美女一区二区 | 91麻豆蜜桃一区二区三区 | 欧美一级视屏 | 中国产一级毛片 | 欧美a在线观看 | 亚洲精品在线观看免费 | 成人黄视频在线观看 | 欧美日韩中文字幕在线视频 | 免费午夜网站 | 国产精品免费久久久久 | 欧美一级黄色片在线观看 | 最新在线黄色网址 | 亚洲欧美一区二区三区在线观看 | 泰剧19禁啪啪无遮挡大尺度 | 蜜桃av网 | 羞羞视频一区 | 草碰人人| 黄色片免费看网站 | 91精品国产日韩91久久久久久360 | 国产精品久久久久久久久久大牛 | 精品久久中文网址 | 国产精品www| 中文字幕在线免费看 | 毛片视频观看 | 黄色片视频观看 | 色蜜桃av | 日韩激情| 污视频在线看 | 中文在线观看视频 | 这里精品| av在线更新 | 亚洲99影视一区二区三区 | 欧美人人干 | 欧美一级爱爱 |