Dispose () ve finalize () arasındaki fark

Temel Fark - elden çıkarma () vs Sonuçlandırmak ()
 

temel fark dispose () ve finalize () arasında nesneyi yok etmeden önce finalize () çöp toplayıcı tarafından çağrılırken dispose () öğesinin programcı tarafından açıkça çağrılması gerekir.

Dispose () yöntemi, nesneler tarafından tutulan dosyalar, akışlar gibi yönetilmeyen kaynakları kapatma veya serbest bırakma yöntemidir. Sonlandırma, nesne yok edilmeden önce geçerli nesne tarafından tutulan yönetilmeyen kaynaklarda temizleme işlemleri gerçekleştirmek için bir yöntemdir.

İÇİNDEKİLER

1. Genel Bakış ve Temel Fark
2. dispose () nedir
3. Sonuçlandırma nedir ()
4. dispose () ve finalize () arasındaki benzerlikler
5. Yan Yana Karşılaştırma - Tablo Formunda dispose () vs finalize ()
6. Özet

Dispose () nedir?

.NET çerçevesinin en önemli avantajlarından biri otomatik çöp toplama sağlamasıdır. Kullanılmayan nesnelerin belleğini otomatik olarak serbest bırakır. C ve C ++ gibi programlama dillerinde, programcı bellek yönetimini kendi başına idare etmek zorundadır. Ancak .NET çerçevesi üzerine kurulu C # gibi dillerde çöp toplayıcı sağlar. Belleğin yönetilmesine yardımcı olur. Yönetilmeyen bellek kaynaklarını serbest bırakmak için kullanılamaz. Bu görevi gerçekleştirmek için dispose () yöntemi kullanılabilir.

Dispose () yöntemi, veritabanı bağlantıları, dosya işleyicileri vb. Kaynakları serbest bırakmak için kullanılabilir. Bu yöntem otomatik olarak çağrılmaz. Bu nedenle, programcı bu yöntemi uygulamalıdır. Bu yöntem çağrıldığında, yönetilmeyen belirli bir kaynağın belleği serbest bırakılır. Bu yöntem IDisposeable arayüzünde bildirildi.

Finalize () nedir?

Sonlandırma yöntemi, yalnızca bir nesneye başvuru daha fazla kullanılmadığında çöp toplayıcı tarafından çağrılır. Bu yöntem, nesneyi yok etmeden hemen önce çağrılır. Bu yöntem yıkıcı yardımı ile uygulanır. Finalize yöntemi java.lang.object sınıfında tanımlanır. Bu yöntem korumalı olarak bildirilir. Diğer sınıfların erişiminden kaçınmak herkese açık olarak ilan edilmez. Genel olarak, sonlandırma yöntemi, belleği anında serbest bırakmadığı için programın performansını en aza indirebilir.

Dispose () ve finalize () arasındaki benzerlik nedir?

  • Hem dispose () hem de finalize (), yönetilmeyen bir kaynak için ayrılan belleği boşaltmak için kullanılabilir.

Dispose () ve finalize () arasındaki fark nedir?

dispose () ile finalize ()

Dispose (), dosyalar, nesne tarafından tutulan akışlar gibi yönetilmeyen kaynakları kapatma veya serbest bırakma yöntemidir. Sonlandırma, nesne yok edilmeden önce geçerli nesne tarafından tutulan yönetilmeyen kaynaklarda temizleme işlemleri gerçekleştirmek için bir yöntemdir.
 Amaç
Dispose yöntemi, yönetilmeyen kaynakları çağrıldığında serbest bırakmak için kullanılır. Sonlandırma yöntemi, nesne yok edilmeden önce yönetilmeyen kaynakları serbest bırakmak için kullanılır.
Tanımlı Arayüz veya Sınıf
Dispose () arabirimi IDisposable arabiriminde tanımlanır. Finalize () java.lang.object sınıfında tanımlanır.
 Çağırma Yöntemi
Dispose yöntemi programcı tarafından çağrılır. Sonlandırma yöntemi çöp toplayıcı tarafından çağrılır.
Erişim Specifier
Dispose yöntemi herkese açık. Sonlandırma yöntemi korunur.
hız
Dispose yöntemi anında çağrılır. Sonlandırma yöntemi yavaşça çağrılır.
Verim
İmha, programın performansını en aza indirmeyecektir. Sonlandırma yöntemi programın performansını en aza indirebilir.

Özet - tasfiye () vs Sonuçlandırmak ()

Bu makalede, C # 'de dispose ve finalize yöntemleri arasındaki fark tartışılmıştır. Dispose () ve finalize () arasındaki fark, dispose () öğesinin programcı tarafından açıkça çağrılması gerekirken, finalize () nesnenin yok edilmesinden önce çöp toplayıcı tarafından çağrılmasıdır.

Referans:

Yönetilmeyen Kaynakların Temizlenmesi ve Sonlandırılması Burada mevcut  
2.Sharma, Nitya. “Temellere Geri Dön - Atma Vs Finalize.” C # Köşe. Burada mevcut  

Görünüm inceliği:

1.'Csharp Logosu 'Andres15alvarez tarafından - Commons Wikimedia üzerinden kendi çalışması, (CC BY-SA 4.0)