Pages

Jumat, 23 November 2012

Stack and Heap


JVM membagi memori menjadi beberapa bagian berikut.

  1. tumpukan
  2. tumpukan
  3. kode
  4. statis

Pembagian memori diperlukan untuk manajemen yang efektif.
Bagian kode berisi bytecode Anda.
Bagian Stack memori berisi metode, variabel lokal dan variabel referensi.
Bagian Heap berisi Objects (juga mungkin berisi variabel referensi).
Bagian statis berisi data statis / metode.


Dari semua 4 bagian di atas, Anda perlu memahami alokasi memori di Stack & Heap yang paling, karena akan mempengaruhi upaya pemrograman Anda

Perbedaan antara variabel instance dan variabel lokal

Variabel instan dideklarasikan di dalam kelas tetapi tidak di dalam metode.

1
2
3
4
5
class Student{
 
<strong>int num; // num is  instance variable</strong>
 
public void showData{}


Variabel lokal dideklarasikan di dalam sebuah metode, termasuk metode argumen.

1
2
3
4
5
6
7
public void sum(int a){
 
int x = int a +  3;
 
// a , x are local variables</strong>
 
}



Yang perlu di ingat :

  1. Ketika metode ini disebut, frame dibuat di bagian atas tumpukan.
  2. Setelah metode telah menyelesaikan eksekusi, aliran kontrol kembali ke metode panggilan dan stack frame yang sesuai memerah.
  3. Variabel lokal yang dibuat dalam tumpukan
  4. Variabel instan dibuat dalam tumpukan & merupakan bagian dari objek yang mereka milik.
  5. Variabel referensi dibuat dalam stack.
Point untuk Ponder: Bagaimana jika Obyek memiliki referensi sebagai variabel instansinya?

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
public static void main(String args[]){
 
A parent = new A();
 
//more code
 
}
 
class A{
 
B child = new B();
 
int e;
 
//more code
 
}
 
class B{
 
int c;
 
int d;
 
//more code
 
}

Dalam hal ini, referensi variabel "anak" akan dibuat dalam tumpukan, yang pada gilirannya akan menunjuk ke objeknya, sesuatu seperti diagram di bawah ini.


1 komentar:

Anda bertanya, saya akan mencoba menjawabnya ~,~

 

Blogger news

Blogroll