SORU
12 Mayıs 2009, Salı


Java nesneleri null olarak ayarlanması artık bir şey yapar mı?

Bazı eski kitaplara göz atıyordum ve" Peter Hagger tarafından. "Pratik Java bir kopyası bulundu Performans bölümünde, artık gerekmediğinde null itiraz başvuruları ayarlamak için bir önerisi var.

Java, null itiraz başvuruları ayarı performans ya da çöp toplama verimliliği artırmak mı? Eğer öyleyse, ne durumda bu bir sorun değil mi? Konteyner sınıfları? Kompozisyon nesne? Anonim iç sınıflar?

Ben kodu bu oldukça sık görüyorum. Bu artık demode programlama danışmanlık ya bu hala işe yarıyor mu?

CEVAP
12 Mayıs 2009, Salı


Başvuru nulling düşünüyordun zaman biraz bağlıdır.

A -^ zinciri bir nesne varsa . B->O zaman ulaşılabilir değil. bir kez C, A, B ve C, çöp toplama için uygun olur (başka bir şey ya da B ya da C dir varsayarak). Gerek yok, hiç gerek açıkça ayarlanmış Kaynaklar A -^ olmuştur . B veya B->Örneğin null C,.

Bu, çoğu zaman ayrı konu gerçekte koleksiyon nesneleri ile uğraşıyoruz nedeniyle meydana gelmez. Genellikle her zaman uygun kaldırma çağırarak, vb listeleri haritalar nesneleri kaldırmayı düşünüyor olmalıyız() yöntemi.

Durumdaeskidenboş başvuruları ayarlamak için birkaç tavsiye özelliklebellek-yoğun bir nesne uzun kapsam partway kapsamı ile kullanılacak durdurdu. Örneğin:

{
  BigObject obj = ...
  doSomethingWith(obj);
  obj = null;             <-- explicitly set to null
  doSomethingElse();
}

Mantığı burada çünkünhala kapsamı, başvuru açık nulling olmadan, sonra çöp koleksiyon olmaz() doSomethingElseyöntem tamamlar. Ve bu tavsiyemuhtemelen artık tutan modern Jvm'ler: JİT derleyici hangi noktada verilen yerel bir nesne başvurusu artık kullanılmamaktadır iyi çözüm olduğu ortaya çıktı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eHow

    eHow

    27 NİSAN 2006
  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • sknbp

    sknbp

    16 Kasım 2006