SORU
1 EKİM 2008, ÇARŞAMBA


Neden hiç sonuçlandırmak uygulamak istiyorum)?

Sürekli okuyorum üzerinden bir sürü çaylak Java soruları finalize() ve bulmak biraz şaşırtıcı olan hiç kimse gerçekten yapılmış düz olan finalize() güvenilmez bir şekilde temizlemek kaynakları. Gördüm biri yorum kullanırlar bunu temizlemek Bağlantıları, ki bu oldukça korkutucu bu yana tek yolu, gelin olarak kapatmak için bir garanti bir Bağlantısı kapalı olduğu için uygulamak deneyin (yakalamak) sonunda.

CS öğrenmişti. ama Java kapatmak için on yıldır profesyonel olarak şimdi programlama yapıyorum ve kimseye sonuçlandırmak uygulamak gördüm() bir üretim sistemi hiç. Bunu hala kullanan yok, ya da beraber çalıştığım insanlar doğru yapıyor anlamına gelmez.

Benim sorum, kullanım durumları sonuçlandırmak uygulamak için ne var() daha güvenilir bir çözüm ile ele alınması ya da dil içinde sözdizimi?

Lütfen belirli senaryolar veya deneyimi, sadece Java bir kitabı tekrar sağlanan, ya da sonuçlandırmak kullanım amacı değildir ve bu sorunun amacı değildir.

CEVAP
1 EKİM 2008, ÇARŞAMBA


Bir nesne bir dış kaynak holding (soket, dosya, vb) için bir koruyucu olarak kullanabilirsin. Yakın uygulamak() denmesi gereken yöntem ve belge.

Finalize uygulamak() yakın() yapılmadı tespit ederseniz işleniyor. Belki bir bebek arabası arayan sonrası temizlik olduğuna işaret stderr için terk etti.

Sıradışı/hatalı bir durumda ekstra güvenlik sağlar. Her arayan doğru denemek yapmak için gitmiyor {} finally {} her zaman bir şeyler. Talihsiz, ama gerçek, pek çok ortamda.

Nadiren gerekli olduğuna katılıyorum. Ve yorumların işaret ettiği gibi, GC yükü ile birlikte geliyor. "Kemer" uzun süren bir uygulama güvenlik. jartiyer eğer ihtiyacınız varsa kullanın

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • grickle

    grickle

    22 AĞUSTOS 2006
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012