18 Nisan 2012 Çarşamba

JAVADA STACK VE HEAP

Javada metodlar,deyisenler,referanslar,obyektler hamisi Ramda mueyyen yer tuturlar.Yaddas 3 hisseden ibaretdir:

  • Code segment
  • Stack segment
  • Heap segment
Code segment-programin compiler oluna bilen kodlarinin yerlesdiyi hissedi.
Stack segment-local deyisenlerin,metodlarin,referanslarin yerlesdiyi hissedir.
Heap segment ise instance deyisenlerin ve obyektlerin yerlesdiyi hissedir.


class Test{ }

class Run {
Test t;                                   // instance variable
String name;                         // instance variable
public static void main(String [] args){
Run r;                     // local variable: r
r=new Run();
r.go(r);
}

void go(Run run){                 // local varibale: run
t=new Test();
run.setName("Hale");
}
void setName(String rName){                // local variable: rName
name=rName;
}
}
Yuxarida yazdigim kodu 1-1 arasdiraqki ne nedi.Basladiq:
-main() - metodu stack hissede yerlesir.
-Referance deyisen olan r stack hissede yaradilir,ancaq Run-in obyekti hele yoxdur.
-Sonra yeni Run obyekti yaradilir ve r referansina menimsedilir.
-go() -metodu stack hissede yerlesir,r parametri ile local deyisen kimi.
-new Test() objesi heapde yaradilir ve menimsedilir Test class-nin instance deyiseni olan t-ye.
-setName() stack hisseye elave olunur.

Hiç yorum yok:

Yorum Gönder