Trường phiên bản, phần tử mảng
Nếu có một tham chiếu đến một đối tượng, nó không thể được thu thập rác. Đặc biệt nếu đối tượng đó (và toàn bộ đồ thị phía sau nó) lớn, chỉ có một tham chiếu đang dừng thu gom rác và tham chiếu đó không thực sự cần thiết nữa, đó là một tình huống đáng tiếc.
Các trường hợp bệnh lý là đối tượng giữ lại một phiên bản không cần thiết cho toàn bộ cây DOM XML đã được sử dụng để định cấu hình nó, MBean chưa được đăng ký hoặc tham chiếu duy nhất đến một đối tượng từ một ứng dụng web chưa được triển khai ngăn không cho tải toàn bộ bộ nạp lớp .
Vì vậy, trừ khi bạn chắc chắn rằng bản thân đối tượng chứa tham chiếu sẽ được thu thập rác (hoặc thậm chí sau đó), bạn nên loại bỏ mọi thứ mà bạn không cần nữa.
Các biến phạm vi:
Nếu bạn đang cân nhắc việc đặt một biến cục bộ thành null trước khi kết thúc phạm vi của nó, để bộ thu gom rác có thể thu hồi và đánh dấu nó là "không thể sử dụng từ bây giờ trở đi", bạn nên cân nhắc đặt nó vào một phạm vi hạn chế hơn. .
{
BigObject obj = ...
doSomethingWith(obj);
obj = null; // <-- explicitly set to null
doSomethingElse();
}
trở thành
{
{
BigObject obj = ...
doSomethingWith(obj);
} // <-- obj goes out of scope
doSomethingElse();
}
Phạm vi dài, phẳng nói chung cũng không tốt cho tính dễ đọc của mã. Việc giới thiệu các phương pháp riêng tư để phá vỡ mọi thứ chỉ vì mục đích đó không phải là không có.