Java'da garbage demek, referansı olmayan nesne demektir.
Garbage collection da runtime sırasında kullanılmayan bellek alanlarını otomatik olarak boşaltıp yeniden kullanılabilir hale getirmek demektir.
Yani artık kullanılmayan nesneleri yok etmektir.
Bunun için C dilinde free(), C++ dilinde delete() metodları kullanılır.
Java dilinde bu işlem otomatik olarak JVM'deki garbage collector tarafından halledilir.
Garbage collection'ın avantajı nedir?
Heap alanını otomatik olarak temizlediğinden etkin bir bellek yönetimi sağlar.
Kullanıcının nesneleri yok etmek ve bellekte yer açmak için efor sarfetmesine gerek kalmaz.
Bir nesne ne zaman kullanılmaz hale gelir?
1. Referansı null olduğunda:
Örneğin aşağıdaki örnekte "s" referansı ile yaratılan nesne referansı null yapıldığı anda garbage olmuştur.
Student s = new Student("a");
s=null;
2. Referansı başkasına yönlendirildiğinde:
Örneğin aşağıdaki örnekte "s1" referansı ile yaratılan nesne, referansı "s2" ile işaret edilen nesneye yönlendirildiğinde anda garbage olmuştur.
Student s1 = new Student("a");
Student s2 = new Student("b");
s1 = s2;
3. Anonim nesne şeklinde yaratılırsa:
new Student("a");
finalize() method
The finalize() method is invoked each time before the object is garbage collected. This method can be used to perform cleanup processing. This method is defined in Object class as:
Note: The Garbage collector of JVM collects only those objects that are created by new keyword. So if you have created any object without new, you can use finalize method to perform cleanup processing (destroying remaining objects).
gc() method
The gc() method is used to invoke the garbage collector to perform cleanup processing. The gc() is found in System and Runtime classes.
Note: Garbage collection is performed by a daemon thread called Garbage Collector(GC). This thread calls the finalize() method before object is garbage collected.
Simple Example of garbage collection in java
object is garbage collected object is garbage collected
Hiç yorum yok:
Yorum Gönder