17 Ocak 2009, CUMARTESİ
Statik alanları çöp toplama için açık?
Verilen program kurulum sadece kullanılan varsayımsal programı sınıf:
class MyUtils {
private static MyObject myObject = new MyObject();
/*package*/static boolean doStuff(Params... params) {
// do stuff with myObject and params...
}
}
myObject artık kullanılmayan çöp toplanacak, yoksa programın yaşam için etrafta olacak?
CEVAP
17 Ocak 2009, CUMARTESİ
Statik değişkenler sınıf yüklendiği sırada çöp toplama için seçilemez. İlgili sınıf yükleyicisi bu sınıf geçirilmesinden sorumlu olduğunu () çöpleri kendisi topladı olduğunda toplanır.
JLS Section 12.7 Unloading of Classes and Interfaces kontrol edin
Bir sınıf veya arabirim kaldırılmış olabilir ve sadece onun tanımlayıcı sınıf varsa Eğer loader çöp tarafından iadesi [...] toplayıcı Sınıflar ve arabirimler bootstrap loader olmayabilir yükleniyor kaldırılmış olması.
Bunu Paylaş:
'sabitler' paylaşım için java...
Nasıl özel yöntemleri, alanları veya i...
Android Bağlam almak için statik bir Y...
Dosya evrenseldir (üç dilim), ama iOS ...
Java bir Toplama filtresi için en iyi ...