Java中过时的引用是什么意思?
2022-09-01 21:14:11
我正在阅读有效的Java,我遇到了这个术语,“过时的参考”。引用何时过时引用?我假设所有不超出范围并保持未使用的对象都是过时的引用。如果我错了,请纠正我。
我正在阅读有效的Java,我遇到了这个术语,“过时的参考”。引用何时过时引用?我假设所有不超出范围并保持未使用的对象都是过时的引用。如果我错了,请纠正我。
过时的引用(如本书中使用的,尽管它不是一个广泛使用的技术术语)是一个保留但永远不会被使用的引用,防止它所引用的对象符合垃圾回收的条件,从而导致内存泄漏。
过时的引用只是一个永远不会再被取消引用的引用。
从有效的Java
,
在 Java 中保留过时的引用。这也称为无意对象保留。
constitutes memory leaks
将引用清空以删除对对象的过时引用是件好事,但不能过度使用。消除过时引用的最佳方法是重用包含它的变量,或者让它超出范围。
例如,用于删除过时的引用,
public Object pop() {
if (size == 0)
throw new EmptyStackException();
Object result = elements[--size];
elements[size] = null; // Eliminate obsolete reference
return result;
}