Program java akan berada pada stack dan heap pada daur hidupnya. Instance variable dan object selalu berada didalam heap sedangkan local variable berada didalam stack.
public class Person{
private Long id; // instance variable
private String nama; // instance variable
public Long getId(){
return id;
}
public void setId(Long i){ // local variable
id = i;
}
public String getNama(){
return nama;
}
public void setNama(String n){ // local variable
nama = n;
}
public static void main(String[] args){
Person saya; // local variable , reference variable
saya = new Person(); // instansiasi object saya
saya.setId(18l);
saya.setNama("nama saya");
System.out.println(saya.getId());
System.out.println(saya.getNama());
Person klonenganSaya = saya; // local variable yang menunjuk ke object yang saya
klonenganSaya.setNama("klonengan saya");
System.out.println(klonenganSaya.getId());
System.out.println(klonenganSaya.getNama());
}
}
local variable adalah variable yang berada didalam method, variable ini hanya hidup selama method dieksekusi, jika program keluar dari method maka variable ini akan diserahkan ke garbage collector untuk dibersihkan.
reference variable adalah variable yang menunjuk ke object, seperti saya dan klonenganSaya, jika nilai di klonenganSaya diganti maka dinilai di saya ikut berubah, karena menunjuk ke object yang sama.
instance variable adalah variable yang dideklarasikan didalam class seperti id dan nama.
Tidak ada komentar:
Posting Komentar