<big id="yeiyz"><ruby id="yeiyz"></ruby></big>
    <track id="yeiyz"></track>
    <track id="yeiyz"></track>
    <p id="yeiyz"><del id="yeiyz"></del></p><td id="yeiyz"><option id="yeiyz"></option></td>
    1. <p id="yeiyz"></p>

      <td id="yeiyz"></td>

      引用計數算法缺陷分析

      HaleyZhang 發布于 前天 11:59
      閱讀 147
      收藏 0
      缺點:主流的Java虛擬機里面沒有選用引用計數算法來管理內存,其中最主要的原因是它很難解決對象之間相互循環引用的問題。
      
      public class ReferenceConuntingGC{
          public object instance = null;
          peivate static final int _1MB = 1024*1024;
      
          private byte[] bigSize = new [2 * _1MB];
      
          public static void testGC(){
              ReferenceConuntingGC objA = new ReferenceConuntingGC();
              ReferenceConuntingGC objB = new ReferenceConuntingGC();
              objA.instance = objB;
              objB.instance = objA;
      
              objA = null;
              objB = null;
      
              System.gc();
      
      
          }
      
      }
      
      上面代碼解釋了引用計數算法互相循環引用時,應該是不會回收objA,objB的,想問一下哪行代碼objA,objB的count加一,
      哪行代碼objA,objB的count減一?

       

      加載中
      0
      d
      dwcz

      難道循環引用不意味設計上有問題?請問有那些方面必須要用循環引用?

      d
      dwcz
      回復 @HaleyZhang : 無所謂了,反正最后都得用通信模式管理內存的--這種安全簡單不怎么高效但可以并行的方式。
      HaleyZhang
      HaleyZhang
      既沒有回答問題,又提了一個新問題。
      0
      溫安適
      溫安適

      你可以試試自己引用自己

      0
      烏龜殼
      烏龜殼

      引用來自“dwcz”的評論

      難道循環引用不意味設計上有問題?請問有那些方面必須要用循環引用?

      雙端鏈表

      d
      dwcz
      忘了這個怪物了。
      返回頂部
      頂部
      聚看影院