jvm(二)------各個運行時數據庫常見內存溢出分析與模擬
阿新 • • 發佈:2018-06-28
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(二)------各個運行時數據庫常見內存溢出分析與模擬