Javada Garbage Collection Çalıştırma
Java’da Garbage collection nedir ? Öncelikle java’da herkezin sisteminde belirli miktarda ram (bellek) ayırır ve bu programın işleyişine göre kullanılıyor.
Garbage Collector javanın kendi içinde bulunan ismi gibi çöplük toplayıcısı yapacağı iş önceden kullanılan ve tekrar kullanılmayan değişken classları silerek rami boşaltır ve programı sorunsuz kullanmanıza yardımcı olur.
Bir adet örnek yazıyorum denemek bedava 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package hafta8; /** * * @author TeknoHisar * * finalize yöntemi */ public class GC1 { String say; int id; static int sayac=0; public GC1(int id){ this.id=id; say="abcdefghjklmoprstwxyzq12345678901"; } // @Override protected void finalize(){ //bir class bellek dolması durumunda ototmatik sonlandırılırken en son finallize çalışır /// kullanıp işi biten nesneleri siler System.out.println(id+"İd numaralı nesnenin finalize"+ " Yöntemi çalıştı."); sayac++; } } |
Burada bir metod açtık ve o metodun içine bellek (bit) harcayacak şekilde şeyler yazdık.
Finallize yazmamın nedeni sildikten sonlanan nesne numarasını bulmak için yazdık , Finallize her şey bittikten sonra çalışır
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public class Hafta8 { public static void main(String[] args) { // TODO code application logic here for(int i=1;i<=1000000000;i++){ GC1 ref=new GC1(i); System.out.println("sayac = "+GC1.sayac); } /// finalize kullanıp işi biten nesneleri siler /// byte hesaplamaya bak } } |
Burada ise en son for ile sayıyı okumayacak kadar döndürdük ve belleğin dolmasını bekledik dolunca alt kısımdaki hatayı veriyor.
Ekran Çıktısı
Şimdi Garbage Collection çalıştı ama ramim dolması nasıl oldu olay derseniz sebebi şu kullandığınız editör ram miktarınıza göre size sınır koyuyor benim biligisayarımda 1 gb sınır