Dispose () ve finalize () arasındaki fark

İçindekiler:

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

Video: Dispose () ve finalize () arasındaki fark

Video: Dispose () ve finalize () arasındaki fark
Video: GUI Programming Introduction - Computerphile 2024, Temmuz
Anonim

Anahtar Farkı – elden çıkarma () vs sonlandırma ()

Dispose () ve finalize () arasındaki temel fark, nesneyi yok etmeden önce sonlandırma () öğesinin çöp toplayıcı tarafından çağrılmasına karşın, Dispose () öğesinin programcı tarafından açıkça çağrılması gerektiğidir.

Gönderme (), bir nesne tarafından tutulan dosyalar, akışlar gibi yönetilmeyen kaynakları kapatmak veya serbest bırakmak için kullanılan bir yöntemdir. Sonlandırma, nesne yok edilmeden önce geçerli nesne tarafından tutulan yönetilmeyen kaynaklar üzerinde temizleme işlemleri gerçekleştirme yöntemidir.

Dispose() nedir?

En önemli avantajlarından biri. NET çerçevesinin otomatik çöp toplama sağlamasıdır. Kullanılmayan nesnelerin hafızasını otomatik olarak serbest bırakır. C ve C++ gibi programlama dillerinde, programcının bellek yönetimini kendi başına yapması gerekir. Ancak. NET çerçevesi üzerine inşa edilen C gibi dillerde çöp toplayıcı sağlar. Hafızayı yönetmeye 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 () ve finalize () arasındaki fark
Dispose () ve finalize () arasındaki fark

Dispose () yöntemi, veritabanı bağlantıları, dosya işleyicileri vb. gibi 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, belirli yönetilmeyen kaynağın belleği serbest bırakılır. Bu yöntem, IDisposeable arabiriminde bildirilmiştir.

Sonlandırmak () nedir?

Sonlandırma yöntemi, yalnızca bir nesneye yapılan 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ıyla 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 tarafından erişimden kaçınmak için genel olarak bildirilmemiştir. Genel olarak, finalize yöntemi, belleği anında boş altmadığı için programın performansını en aza indirebilir.

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

Yönetilmeyen bir kaynak için ayrılan belleği boş altmak için hem bertaraf () hem de finalize() kullanılabilir

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

dispose () vs finalize ()

Gönderme (), bir nesne tarafından tutulan dosyalar, akışlar gibi yönetilmeyen kaynakları kapatmak veya serbest bırakmak için kullanılan bir yöntemdir. Sonlandırma, nesne yok edilmeden önce geçerli nesne tarafından tutulan yönetilmeyen kaynaklar üzerinde temizleme işlemleri gerçekleştirme yöntemidir.
Amaç
Dispose yöntemi, çağrıldığında yönetilmeyen kaynakları 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ımlanmış Arayüz veya Sınıf
Disposable () arabirimi IDisposable arabiriminde tanımlanır. Sonlandırma (), 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 Tanımlayıcı
Elden çıkarma yöntemi herkese açıktır. Sonlandırma yöntemi korumalıdır.
Hız
Disclosure yöntemi anında çağrılır. Sonlandırma yöntemi yavaş çağrılır.
Performans
Elden çıkarma, programın performansını en aza indirmez. Sonlandırma yöntemi programın performansını en aza indirebilir.

Özet – elden çıkarma () vs kesinleştirme ()

Bu makalede, C'ta elden çıkarma ve sonlandırma yöntemleri arasındaki fark tartışılmıştır. Dispose () ve finalize () arasındaki fark, nihaileştirme () öğesinin nesneyi yok etmeden önce çöp toplayıcı tarafından çağrılmasına karşın, Dispose () öğesinin programcı tarafından açıkça çağrılması gerektiğidir.

Önerilen: