โดยปกติแล้วไม่
แต่เช่นเดียวกับทุกสิ่ง: ขึ้นอยู่กับ GC ใน Java ทุกวันนี้ดีมากและทุกอย่างควรได้รับการทำความสะอาดในไม่ช้าหลังจากไม่สามารถเข้าถึงได้อีกต่อไป นี่เป็นเพียงหลังจากออกจากเมธอดสำหรับตัวแปรโลคัลและเมื่ออินสแตนซ์คลาสไม่ถูกอ้างถึงสำหรับฟิลด์อีกต่อไป
คุณจะต้องเป็นโมฆะอย่างชัดเจนหากคุณรู้ว่าจะยังคงอ้างอิงเป็นอย่างอื่น ตัวอย่างเช่นอาร์เรย์ที่เก็บไว้รอบ ๆ คุณอาจต้องการโมฆะองค์ประกอบแต่ละรายการของอาร์เรย์เมื่อไม่จำเป็นอีกต่อไป
ตัวอย่างเช่นรหัสนี้จาก ArrayList:
public E remove(int index) {
RangeCheck(index);
modCount++;
E oldValue = (E) elementData[index];
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[--size] = null;
return oldValue;
}
นอกจากนี้การทำให้วัตถุว่างเปล่าอย่างชัดเจนจะไม่ทำให้วัตถุถูกรวบรวมเร็วกว่าที่จะออกนอกขอบเขตตามธรรมชาติตราบเท่าที่ไม่มีการอ้างอิงใด ๆ
ทั้งสอง:
void foo() {
Object o = new Object();
}
และ:
void foo() {
Object o = new Object();
o = null;
}
เทียบเท่ากับการทำงาน