每个人都知道 - 垃圾收集器清除未使用对象的内存。
我的问题是,用于定义此对象是否未使用的参数是什么?
答案 0 :(得分:2)
指向对象的指针数为零=>对象未使用(无法访问)
答案 1 :(得分:1)
垃圾收集的两种主要形式是Mark&扫描或引用计数。
大多数现代语言使用多种方法的组合或变体。这将涵盖每个方案的一般概念。
此外,逃逸分析用于“减少”“垃圾”的数量。
这可以通过使用所有对象,使用单个布尔“标记”参数来实现。
这适用于使用整数“父引用”参数计算数量的概念,并在其计数达到零时删除该对象。
通过分析执行代码,是一种用于“减少”垃圾量的附加方法。对于临时变量,在函数执行后永远不会是“持久的”。然后,在执行函数后立即清除这些对象/变量。避免将对象添加到垃圾收集系统的需要(其中将有开销)。这一步对于确保许多现代语言的表现至关重要。
Detailed advantages / disadvantages of Mark & Sweep / Reference Counting can be found on wiki