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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩中文字幕久久伊人 | 精品视频日本 | 美女校花被调教出奶水 | 日韩在线观看网站 | 婷婷丁香色综合狠狠色 | 欧美一级片观看 | 调教校花浣肠开菊 | 天天爱天天做天天爽天天躁 | 亚洲卡一卡2卡三卡4卡无卡三 | 扒开黑女人p大荫蒂老女人 扒开大腿狠狠挺进视频 | 四虎免费看 | 四虎影视网址 | 探花 在线 | 国产精品香蕉在线观看不卡 | 成人永久免费福利视频网站 | 性欧美videofree中文字幕 | 日本欧美不卡一区二区三区在线 | 欧美日韩高清不卡一区二区三区 | 91次元成年破解版 | 国内精品视频免费观看 | 国产亚洲99影院 | chinaspanking调教 chanelpreston欧美网站 | 99久久免费国产香蕉麻豆 | 免费网站国产 | 国产欧美日韩一区二区三区在线 | 欧美午夜精品久久久久久黑人 | 精品一区二区三区五区六区七区 | 欧美性4khd720 | 国产一区二区三区在线看片 | 欧美第一视频 | 果冻传媒在线完整免费观 | 日韩高清一区二区三区不卡 | 欧美男女爱爱视频 | 欧美精品日韩一区二区三区 | 亚洲人成激情在线播放 | 无耻之徒第十一季在线观看 | 天堂网在线.www天堂在线视频 | 99视频有精品视频免费观看 | 美妇在男人胯下哀求 | 免费成年人在线视频 | 亚洲国产欧美另类va在线观看 |