黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java堆棧

Java堆棧溢出

背景知識:

棧存放什么:棧存儲運行時聲明的變量——對象引用(或基礎類型, primitive)內存空間, 棧的實現是先入后出的。

堆存放什么:堆分配每一個對象內容(實例)內存空間。

棧溢出:java.lang.StackOverflowError

堆溢出:java.lang.OutOfMemoryError: Java heap space

棧溢出實現,可以遞歸調用方法,這樣隨著棧深度的增加,JVM 維持著一條長長的方法調用軌跡。

堆溢出實現,可以循環創建對象或大的對象;

直到內存不夠分配,產生棧溢出。

棧溢出

兩種情況:

• 線程請求的棧深度大于虛擬機允許的最大深度 StackOverflowError

• 虛擬機在擴展棧深度時,無法申請到足夠的內存空間 OutOfMemoryError

堆溢出

創建對象時如果沒有可以分配的堆內存,就會出現堆溢出。

兩者實例如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class testCode {
    public void testHeap(){//堆溢出
        List<byte[]> list = new ArrayList<>();
        int i=0;
        while (true){
            list.add(new byte[5*1024*1024]);
            System.out.println("count is: "+(++i));
        }
    }
    int num = 1;
    public void testStack(){ //棧溢出
        num++;
        this.testStack();
    }
    public static void main(String[] agrs){
       testCode t = new testCode();
        t.testHeap();
        t.testStack();
    }
}

運行結果:

//堆溢出:
count is: 343
count is: 344
count is: 345
count is: 346
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at testCode.testHeap(testCode.java:14)
    at testCode.main(testCode.java:25)
//棧溢出:
StackOverflowError

• 1

• 2

另外,Java虛擬機的堆大小如何設置:命令行

java –Xms128m //JVM占用最小內存

       –Xmx512m //JVM占用最大內存

       –XX:PermSize=64m //最小堆大小

       –XX:MaxPermSize=128m //最大堆大小

• 1

• 2

• 3

• 4

• 5

• 6

全部教程
主站蜘蛛池模板: 特级全黄一级毛片视频 | 性xxxx18免费观看视频 | 天天国产视频 | 激情五月婷婷开心 | 大学生一级特黄的免费大片视频 | 一一本大道香蕉大 | 天天干天天干天天干天天 | 天天躁夜夜躁狠狠躁躁 | 日本www色视频萌爱网 | 国产精品一区二区三区久久 | 69中国xxxxxxxx18 | 欧美性极品xxxxx | 成人网久久 | 国产成人亚洲精品91专区高清 | 免费成年人视频在线观看 | 中文字幕亚洲一区 | 一级黄a | 欧美不卡激情三级在线观看 | 国产亚洲午夜精品 | 欧美洲视频在线观看 | 农村妇女又色黄一级毛片 | 成人在线观看高清完整免费 | 你懂的在线免费视频 | 欧美经典成人在观看线视频 | 精品欧美成人高清视频在线观看 | 国产三级日本三级在线播放 | 成人免费一级毛片在线播放视频 | 九九在线免费视频 | 韩国在线观看日韩 | 中文字幕在线观看你懂的 | 天天操夜夜做 | 国产高清在线视频一区二区三区 | 亚洲欧美在线观看 | 黄色影视 | 深夜毛片 | 亚洲欧美在线观看播放 | 免费成年人视频在线观看 | 激情文学综合丁香 | 国产一级久久免费特黄 | 不卡视频一区 | 亚欧视频在线观看 |