1. 程式人生 > >jvm(二)------各個運行時數據庫常見內存溢出分析與模擬

jvm(二)------各個運行時數據庫常見內存溢出分析與模擬

static fin xmx ava erro list exce new 區域

一、堆溢出

jvm參數 -Xms11m -Xmx40m

運行代碼

    public static void main(String[] args)  {
        List<byte[]> list = new ArrayList<>();
        int i=0;
        while(true){
            list.add(new byte[5*1024*1024]);
            System.out.println("分配次數:"+(++i));
        }
    }

運行結果

分配次數:1
分配次數:2
分配次數:3
分配次數:4
分配次數:5
分配次數:6
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Stack.main(Stack.java:15)

Process finished with exit code 1

  分析:堆在jvm中是所有線程共享的一部分區域,其主要是存放實例對象,當實例對象需要分配的內存超過堆的最大內存,則會有堆溢出的問題。

哎不想寫了 網上寫了好多了

jvm(二)------各個運行時數據庫常見內存溢出分析與模擬