若是對象的引用被置爲null,垃圾收集器是否會當即釋放對象佔用的內存?

連接:https://www.nowcoder.com/questionTerminal/fbef4d5971ce4009aa720aecf7d83f3c?pos=81&mutiTagIds=570&orderByHotValue=1
來源:牛客網

不會當即釋放對象佔用的內存。 若是對象的引用被置爲null,只是斷開了當前線程棧幀中對該對象的引用關係,而 垃圾收集器是運行在後臺的線程,只有當用戶線程運行到安全點(safe point)或者安全區域纔會掃描對象引用關係,掃描到對象沒有被引用則會標記對象,這時候仍然不會當即釋放該對象內存,由於有些對象是可恢復的(在 finalize方法中恢復引用 )。只有肯定了對象沒法恢復引用的時候纔會清除對象內存。安全

相關文章
相關標籤/搜索