Apache flex 弱参照与强参照

Apache flex 弱参照与强参照,apache-flex,actionscript,Apache Flex,Actionscript,在这个类中,它们如何表示一个弱引用和一个强引用。类本身模拟一个弱引用,并且可以作为一个弱引用传递。 如果没有对该值的其他弱引用,它将被垃圾收集,因为对它的引用是通过具有弱(引用)键的字典建立的 一旦在中获得值,就获得对象本身的引用,与ActionScript中的所有直接对象引用一样,它是一个强引用。只要保留该引用,对象就不会被垃圾收集 编辑:弱引用和强引用之间的差异 在程序执行期间,需要管理内存。低级语言要求您手动分配内存(获取可用空间),并在不再需要对象时释放内存。高级语言使用垃圾收集。这是一

在这个类中,它们如何表示一个弱引用和一个强引用。

类本身模拟一个弱引用,并且可以作为一个弱引用传递。
如果没有对该值的其他弱引用,它将被垃圾收集,因为对它的引用是通过具有弱(引用)键的字典建立的

一旦在中获得值,就获得对象本身的引用,与ActionScript中的所有直接对象引用一样,它是一个强引用。只要保留该引用,对象就不会被垃圾收集

编辑:弱引用和强引用之间的差异
在程序执行期间,需要管理内存。低级语言要求您手动分配内存(获取可用空间),并在不再需要对象时释放内存。高级语言使用垃圾收集。这是一个系统,它试图确定对象是否仍然需要,或者是“垃圾”,即可以丢弃,释放它们所需的内存。为了确定是否需要某个对象,垃圾收集器尝试查找“知道”该对象的其他对象,即具有对该对象的引用。当一个对象被其他对象引用时,它将被保留(事实上它不是,因为其他未引用的对象可以循环引用彼此,但我们不要过多地讨论细节)。
因此,“知道/引用对象”会产生“使其保持活动”的副作用,因为它无法删除。有时,这种副作用是没有必要的。例如,如果您需要一个一段时间内所有现有对象的列表,以便更快地访问,那么拥有此列表将使它们不会被丢弃,即使该列表是唯一保存对它们的引用的对象。这就是为什么会有弱引用,而正常引用也可以称为“强”,因为它们可以防止对象被垃圾收集。弱引用允许您引用对象,但被垃圾收集器忽略。这通常非常有帮助,如上述情况

格里茨

back2dos

你能给我弱参考和强参考的定义吗。我没办法去。sorry@theband:请查看我的更新。此外,您可能需要查看更多详细信息。
package uk.co.bigroom.utils 
{
    import flash.utils.Dictionary;
    /**
     * Class to create a weak reference to an object. A weak reference
     * is a reference that does not prevent the object from being
     * garbage collected. If the object has been garbage collected
     * then the get method will return null.
     */
    public class WeakRef
    {
        private var dic:Dictionary;

        /**
         * The constructor - creates a weak reference.
         * 
         * @param obj the object to create a weak reference to
         */
        public function WeakRef( obj:* )
        {
            dic = new Dictionary( true );
            dic[obj] = 1;
        }

        /**
         * To get a strong reference to the object.
         * 
         * @return a strong reference to the object or null if the
         * object has been garbage collected
         */
        public function get():*
        {
            for ( var item:* in dic )
            {
                return item;
            }
            return null;
        }
    }
}