一旦拋出異常,是否導致拋出內存不足的對象?它是否立即發生?java.lang.OutOfMemoryError,何時回收內存?
換句話說,如果我將對象添加到列表中,在某些時候,這不會再發生,並且會引發OOM錯誤。那個時候,列表本身發生了什麼?
java.lang.OutOfMemoryError: Java heap space
一旦拋出異常,是否導致拋出內存不足的對象?它是否立即發生?java.lang.OutOfMemoryError,何時回收內存?
換句話說,如果我將對象添加到列表中,在某些時候,這不會再發生,並且會引發OOM錯誤。那個時候,列表本身發生了什麼?
java.lang.OutOfMemoryError: Java heap space
當無法創建新對象時會引發這種情況。當前對象將繼續存在。
但是,由於這樣的錯誤的性質,當前的代碼將停止執行,很可能很快就會對當前對象進行垃圾回收。它僅取決於代碼的結構以及引用是否仍然保留在對象中。
時,因爲它超出了內存,並且可以通過垃圾收集器提供任何更多的內存,Java虛擬機無法分配一個對象時拋出。
根據http://docs.oracle.com/javase/6/docs/api/,OutOfMemoryError錯誤是:當Java虛擬機無法分配一個對象,因爲 它是內存不足
拋出,並且可以由 垃圾進行沒有可用的內存集電極。
因此,只要JVM發現它沒有足夠的heap空間爲您嘗試創建的新對象分配內存,就會發生這種情況。所以對象永遠不會被創建,因爲你沒有足夠的內存。
這是**錯誤**(不可恢復)。 – adatapost 2012-07-06 02:21:41