[英]Will it happen - object created and immediately garbage collected in java
創建對象的可能性很小,在將對象分配給引用變量之前,該對象才有資格進行垃圾回收。
根據這一點 ,標記過程分為四個階段,最后一個階段的Final Marking phase
是通過保持Java線程暫停來運行的。 現在,線程可能會創建一個對象,並在將其分配給引用變量之前在Final Marking phase
暫停。 現在,在此階段中,它已將對象標識為活動對象,並且應該可以使用GC。
怎么了 :
如果對象已被GCed,則創建它的線程在恢復后將不再具有創建的對象。
如果該對象未進行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.