Örnek alanları, dizi öğeleri
Bir nesneye referans varsa, çöp toplanamaz. Özellikle bu nesne (ve arkasındaki tüm grafik) büyükse, çöp toplamayı durduran tek bir referans vardır ve bu referansa artık gerçekten ihtiyaç duyulmaz, bu talihsiz bir durumdur.
Patolojik durumlar, onu yapılandırmak için kullanılan XML DOM ağacının tamamında tek olmayan bir örneği tutan nesnedir, kayıtsız olmayan MBean veya tüm sınıf yükleyicinin kaldırılmasını önleyen dağıtılmamış bir web uygulamasından bir nesneye yapılan tek başvuru .
Dolayısıyla, referansı tutan nesnenin yine de (veya o zaman bile) çöp olarak toplanacağından emin değilseniz, artık ihtiyacınız olmayan her şeyi geçersiz kılmalısınız.
Kapsamlı değişkenler:
Yerel bir değişkeni kapsamının sonundan önce boş olarak ayarlamayı düşünüyorsanız, böylece çöp toplayıcı tarafından geri alınabilir ve "şu andan itibaren kullanılamaz" olarak işaretlenebilir, bunun yerine onu daha sınırlı bir kapsam içine koymayı düşünmelisiniz. .
{
BigObject obj = ...
doSomethingWith(obj);
obj = null; // <-- explicitly set to null
doSomethingElse();
}
olur
{
{
BigObject obj = ...
doSomethingWith(obj);
} // <-- obj goes out of scope
doSomethingElse();
}
Uzun, düz kapsamlar genellikle kodun okunabilirliği açısından da kötüdür. Sırf bu amaçla işleri parçalamak için özel yöntemler sunmak da duyulmamış bir şey değil.