1. 程式人生 > >java 內存溢出總結

java 內存溢出總結

warn min warning 內存 圖片 分享圖片 string col wsize

/**
 * jvm 參數: -Xms5m -Xmx5m -Xmn2m -XX:NewSize=1m
 * @author admin
 *
 */
public class HeapOutOfMemoryError {
    
    //
    @SuppressWarnings("unused")
    private String[] strings = new String[100000];
    
    public static void main(String[] args) {
        Map<Object, HeapOutOfMemoryError> map = new
HashMap<Object, HeapOutOfMemoryError>(); int i = 0; do { map.put(String.valueOf(i), new HeapOutOfMemoryError()); i++; } while (i<100000); } }

技術分享圖片

方法區(永久代)

public class PermOutOfMemoryError {

    // 方法區
    @SuppressWarnings("
unused") private static String[] strings = new String[100000]; public static void main(String[] args) { Map<Object, PermOutOfMemoryError> map = new HashMap<Object, PermOutOfMemoryError>(); int i = 0; do { map.put(String.valueOf(i),
new PermOutOfMemoryError()); i++; } while (i<100000); } }

技術分享圖片

public class StackOverFlowError {

    public static void main(String[] args) {
        int i = 0;
        go(i);
    }

    @SuppressWarnings("unused")
    private static void go(int i) {
        System.out.println(i);
        String[] strings = new String[100000];
        i++;
        go(i);
    }
}

技術分享圖片

java 內存溢出總結