• <ruby id="bi9vj"><b id="bi9vj"></b></ruby>

        <b id="bi9vj"></b>

        引用計數算法缺陷分析

        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
        忘了這個怪物了。
        返回頂部
        頂部
        聚看影院