為什么我沒有使用以下代碼獲取OutOfMemoryError?class OutOfMemoryErrorTest{
public static void main(String[] args){
Object obj;
while(true){
obj = new Object();
}
}}我正在運行Java 8。
3 回答
猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
每次循環后,obj將被標記為可收集,因此將被收集。
while(true){
Object obj = new Object(); //no further reference, so obj will be collected
}如果需要測試OOM,則應將obj的引用保存到LinkedList。
List refs = new LinkedList();
while (true) {
Object obj = new Object();
refs.add(obj);
}然后你會得到你想要的OOM。并且您可以使用較小的堆來更快地到達OOM。
添加回答
舉報
0/150
提交
取消
