總結:如何判斷一個對象是否可被回收


一、引用計數算法:

  判斷對象的引用數量:

    通過判斷對象的引用數量來決定對象是否可以被回收;

    每個對象實例都有一個引用計數器,被引用則+1,完成引用則-1;

    任何引用計數為0的對象實例可以被當作垃圾收集;

  優缺點:

    優點:執行效率高,程序執行受影響較小;

    缺點:無法檢測出循環引用的情況,導致內存泄漏;

二、可達性分析算法:

  通過判斷對象的引用鏈是否可達來決定對象是否可以被回收;

  可以作為GC Root的對象有:

    虛擬機棧中引用的對象(棧幀中的本地變量表);

    方法區中的常量引用對象;

    方法區中類靜態屬性引用對象;

    本地方法棧中JNI(Native方法)的引用對象;

    活躍線程中的引用對象;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM