Anahtar Farkı – Çöp Toplayıcı vs Yıkıcı
Çoğu programlama dili Nesne Yönelimli Programlamayı destekler. Nesneleri kullanarak bir program veya yazılım oluşturmak için bir metodolojidir. Bir nesne, bir sınıf kullanılarak oluşturulur, bu nedenle bir sınıfın örneğidir. Bir sınıf, nesnenin nelerden oluşması gerektiğinin açıklamasını sağlar. Nesneler oluşturulurken, nesneler için bellek ayrılır. Ayrılan bellek, bu belleği başka bir nesne için yeniden kullanmak için program yürütmesinin sonunda serbest bırakılmalıdır. Java ve C. NET gibi programlama dilleri bellek yönetimi için çöp toplayıcıları kullanırken, C ve C++ gibi diller programcının bellek yönetimini yönetmesini gerektirir. Gerekli miktarda bellek tahsis edilmeli ve yürütme sonunda bellek serbest bırakılmalıdır. Çöp toplayıcı ve yıkıcı, belleği serbest bırakmak için kullanılır. Çöp toplayıcı ve yıkıcı arasındaki temel fark, çöp toplayıcının otomatik bellek yönetimi gerçekleştiren bir yazılım olması, yıkıcı ise nesnenin yok edilmesi sırasında çöp toplayıcı tarafından çağrılan özel bir yöntemdir.
Çöp Toplayıcı Nedir?
Bazı programlama dillerinde yönetilen kod ortamları vardır. Java ve C programlama dillerinde otomatik bellek yönetimi yapılmaktadır. Programcının nesneler tarafından kullanılan belleği boş altması gerekmez. Bellek yönetimi otomatik olarak yapıldığından karmaşık sistemleri bile geliştirmeleri daha kolaydır. C, C++ ve Objective C gibi programlama dillerinde, program nesnelerin belleğini sisteme geri bırakmalıdır. Java ve C gibi diller artık kullanılmayan nesneleri anlayabilir. Daha sonra bu nesneler için ayrılan belleği tekrar sisteme bırakırlar.
C ve Java programlama dillerinde Student adında bir sınıf varsa, Student s=new Student() kullanılarak bir nesne oluşturulabilir; 'Yeni', Student sınıfının bir örneğini oluşturmak için kullanılır. Sistemde bellek tahsis eder. 's', o nesne için ayrılan bellek bloğuna atıfta bulunur. Dil ortamları, nesnelerin kullanılıp kullanılmadığını belirler. Daha fazla kullanılmazlarsa, bellek serbest bırakılır ve daha sonra kullanılabilir.
Şekil 01: Çöp Toplayıcı ve Yıkıcı
Bir programı çalıştırırken, bellek blokları sistem bellek havuzundan ayrılır. Daha sonra program bu hafızayı kullanarak görevleri gerçekleştirir. Program yürütmesi sona erdiğinde, çöp toplayıcı program için ayrılan bellek bloklarının gerekli olup olmadığını anlar. Gerekli değilse, bu bellek blokları sisteme döndürülür. Böylece çöp toplayıcı, programda oluşturulan nesneleri izleyebilir. Artık gerekli olmayan bellek blokları, sistem bellek havuzuna geri gönderilir. Bu işlemin ana avantajı, programcının bellek ayırmaya konsantre olması gerekmediğini doğrulamaktır. Performans ve bellek kullanımını dengeler.
Yıkıcı nedir?
Yıkıcı, bir sınıfın özel üye işlevidir. Nesne kapsam dışına çıktığında çağrılır. Nesne, bir işlev sona erdiğinde veya program yürütmesinin sonunda yok edilebilir. Yıkıcı, sınıf adıyla aynı ada sahiptir. Yapıcı, nesneyi oluşturmak için kullanılır. Parametreleri kabul edebilir. Yapıcı ayrıca dönüş değerlerine sahip olabilir. Ancak bir Yıkıcı'da geri dönüş türü veya kabul eden parametreler yoktur. Bir sınıf yalnızca bir yıkıcıdan oluşabilir. Bir yıkıcı, tilde işareti kullanılarak belirtilir. Sınıf adı Student ise, yıkıcı ~Student () {}. olur.
Çöp toplayıcı artık gerekli olmayan nesneleri arar. Program tarafından artık kullanılmayan nesnelerin imha edilmesini sağlar. Yıkıcıyı belleği serbest bırakmaya ve kaynakları serbest bırakmaya çağırır. Yıkıcılar, belleği serbest bırakmak, dosyaları kapatmak, ağ kaynaklarını serbest bırakmak ve veritabanı bağlantılarını kapatmak için kullanışlıdır. Çoğu programlama dilinde, çöp toplayıcı varsayılan kurucuyu kendi başına çağırdığı için yıkıcıyı yazmak gerekli değildir. Programcı C++ gibi bir dilde işaretçiler kullanarak herhangi bir dinamik bellek ayırma işlemi yaptıysa, nesne yok edilmeden önce belleği serbest bırakmak için bir yıkıcı yazmalıdır.
Çöp Toplayıcı ile Yıkıcı Arasındaki Benzerlik Nedir?
Hem Çöp Toplayıcı hem de Yıkıcı, program için artık gerekli olmayan belleği serbest bırakmak için kullanılır
Çöp Toplayıcı ile Yıkıcı Arasındaki Fark Nedir?
Çöp Toplayıcı vs Yıkıcı |
|
Çöp toplayıcı, otomatik bellek yönetimi gerçekleştiren bir yazılımdır. | Yıkıcı, nesnenin yok edilmesi sırasında çöp toplayıcı tarafından çağrılan özel bir yöntemdir. |
Tür | |
Çöp toplayıcı bir yazılımdır. | Yıkıcı bir yöntemdir. |
Özet – Çöp Toplayıcı vs Yıkıcı
Çöp toplayıcı ve yıkıcı, belleği serbest bırakmakla ilişkili iki terimdir. Bu makale Çöp Toplayıcı ve yıkıcı arasındaki farkı tartıştı. Çöp toplayıcı ve yıkıcı arasındaki fark, çöp toplayıcının otomatik bellek yönetimi yapan bir yazılım olması, yıkıcı ise çöp toplayıcı tarafından nesnenin imhası sırasında çağrılan özel bir yöntem olmasıdır.
Garbage Collector vs Destructor'ın PDF'sini indirin
Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlarla kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin: Çöp Toplayıcı ve Yıkıcı Arasındaki Fark