題目
(多選)關於OutOfMemoryError,下面說法正確的是()?
A. java.lang.OutOfMemoryError: PermGen space
增加-XX:MaxPermSize這個參數的值的話,這個問題通常會得到解決。
B. java.lang.OutOfMemoryError: Requested array size exceeds VM limit
當你正準備創建一個超過虛擬機允許的大小的數組時,這條錯誤將會出現
C. java.lang.OutOfMemoryError: Java heap space
一般情況下解決這個問題最快的方法就是通過-Xmx參數來增加堆的大小
D. java.lang.OutOfMemoryError: nativeGetNewTLA
這個異常只有在jRockit虛擬機時纔會碰到
答案
A B C
解析
A:java.lang.OutOfMemoryError: PermGen space
屬於運行時常量池溢出,設置-XX:MaxPermSize可以解決。
B:java.lang.OutOfMemoryError: Requested array size exceeds VM limit
數組過長導致堆內存溢出,加大堆內存或減少數組長度。
C:java.lang.OutOfMemoryError: Java heap space
堆內存不足,加大堆內存
D:java.lang.OutOfMemoryError: nativeGetNewTLA
指當虛擬機不能分配新的線程本地空間(Thread Local Area)的時候錯誤信息,此錯誤是線程申請一個新的TLA時產生的,這個異常一般只會發生在jRockit虛擬機,只有過於絕對。