有沒有一點機會創建一個對象,並在它被分配給引用變量之前有資格進行垃圾回收。它會發生 - 創建對象並立即在java中收集垃圾
根據this標記有4個階段,最後階段Final Marking phase
通過保持Java線程暫停來運行。現在線程創建一個對象並在將它分配給一個引用變量之前暫停Final Marking phase
。現在在這個階段,它將對象識別爲活動對象,並且應該符合GC的條件。
會發生什麼:
如果對象是GCed,它創建它的線程,不會有 創建對象時,它恢復後。
如果該對象未被GCed, 是什麼使它逃脫被識別爲孤兒對象。
我真的懷疑它。 JVM設計者會想到這一點。 –
對一個極其複雜的過程進行簡單描述,然後試圖診斷線程安全問題就像是通過檢查[Up Goer 5的藍圖]來評估美國太空計劃的可行性(https:// xkcd的.com/1133 /)。這是徒勞的,浪費你的時間。 –
這就是爲什麼我初始化我的對象:'Object o = null; while(o == null)o = new Object();' – Kayaman