為什么我沒有使用以下代碼獲取OutOfMemoryError?class OutOfMemoryErrorTest{
public static void main(String[] args){
Object obj;
while(true){
obj = new Object();
}
}}我正在運行Java 8。
3 回答

猛跑小豬
TA貢獻1858條經(jīng)驗 獲得超8個贊
每次循環(huán)后,obj將被標(biāo)記為可收集,因此將被收集。
while(true){ Object obj = new Object(); //no further reference, so obj will be collected }
如果需要測試OOM,則應(yīng)將obj的引用保存到LinkedList。
List refs = new LinkedList(); while (true) { Object obj = new Object(); refs.add(obj); }
然后你會得到你想要的OOM。并且您可以使用較小的堆來更快地到達OOM。
添加回答
舉報
0/150
提交
取消