簡體   English   中英

會發生嗎-在Java中創建對象並立即進行垃圾回收

[英]Will it happen - object created and immediately garbage collected in java

創建對象的可能性很小,在將對象分配給引用變量之前,該對象才有資格進行垃圾回收。

根據這一點 ,標記過程分為四個階段,最后一個階段的Final Marking phase是通過保持Java線程暫停來運行的。 現在,線程可能會創建一個對象,並在將其分配給引用變量之前在Final Marking phase暫停。 現在,在此階段中,它已將對象標識為活動對象,並且應該可以使用GC。

怎么了 :

  1. 如果對象已被GCed,則創建它的線程在恢復后將不再具有創建的對象。

  2. 如果該對象未進行GC處理,那么將其逃避為孤立對象的原因是什么。

有絲毫機會嗎

對於足夠多的錯誤實現,足夠魯ck的開發人員可以繞過VM驗證/安全網或Cx Mc M-butterfly的調用 :當然可以。

另一方面,在行為規范和根據規范使用的理想系統中,GC僅允許在定義明確,一致的執行狀態下發生。

你的想法就像

a = new A();

被執行為

    new A();
a = 

因此創建了一個對象,然后a看到等號並尋找要分配的對象。 對於分配,這永遠無法工作,您必須能夠獲得RHS,即對象必須已經存儲在某處。 在使用字節碼的情況下,該位置是堆棧,所有線程堆棧都是GC根。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM