Java Stack bellekte dizi işlemleri nasıl yürür?

Stack üzerinde const veriler tutulur, fonksiyon adresleri ve parametreleri, implemente edilen değişkenler vs. New ile tanımlanan her türlü obje, array ise heap üzerinde tutulur. İnt değişkeni tanımlandıginda stack üzerinde bir int adresi tutacak yer ayrılır, bu compile time da bellidir, run time da ise bu int degisgenine New ile atama yapıldığında tahsis edilen bellek heap üzerinden olur ve stack üzerindeki değişkene heap üzerinde tahsis edilen belleğin ilk adresi yerleştirilir.
Manuel olarak işlemlerin bittiği yerlerde System.gc(); komutu girilmeli midir? Yoksa tüm bellek yönetimini JVM'ye bırakmalı mıyız?

Örnek kod;
Java:
if(gecerli){
    for(int i = 0; i<10*10*10; i++)
    {
       
    }
    gecerli = false;
    System.gc();
}
 
Son düzenleme:
Manuel olarak işlemlerin bittiği yerlerde System.gc(); komutu girilmeli midir? Yoksa tüm bellek yönetimini JVM'ye bırakmalı mıyız?

Örnek kod;
Java:
if(gecerli){
    for(int i = 0; i<10*10*10; i++)
    {
      
    }
    gecerli = false;
    System.gc();
}
Bu kodda çöp toplayıcı çalışmaz çünkü değişkenler stack üzerinde ve program sonuna kadar yaşayacaklar, New ile yarattığın nesneler üzerinde gc uygulanır ve evet bu yönetimi jvm ye bırakmalısın.
 

Technopat Haberler

Yeni konular

Geri
Yukarı