Belajar Mengenal Perbedaan Alokasi Memori Stack Vs Heap Di Java

Stack dan Heap , keduanya merupakan bab dari sistem memori ,yang ada di dalam komputer , yang fungsinya sebagai daerah , untuk mengalokasikan  data , pada suatu jadwal aplikasi. Dimana keduanya sama-sama disimpan , ke dalam memori RAM di komputer.  
Seperti yang kita tahu , ketika kita mencoba menuliskan baris code , kemudian menjalankan suatu jadwal aplikasi . Selanjutnya , akan terjadi suatu proses, yang secara otomatis akan menempatkan ke lokasi tertentu dalam memori,  ketika jadwal aplikasi tersebut dijalankan  ,yang dimana ini sanggup juga sebut sebagai alamat memori (memory address). 
 keduanya merupakan bab dari sistem memori  Belajar Mengenal Perbedaan Alokasi Memori Stack vs Heap di Java
Sebuah jadwal yang memakai bahasa pemrograman java ,  akan menjalankan JVM , yang mana akan diluncurkan,  atas proses perintah atau command java. Selama jadwal java dijalankan (runtime) , memori akan terbagi menjadi 3 part atau bagian. Ketiga part itu terdiri dari baris code atau text , stack ,dan , heap. Beberapa baris code ,ada yang ditempatkan di memori stack , beberapa baris code lainnya , akan ditempatkan di memori heap.
Pada artikel mencar ilmu java kali ini ,kita akan mencar ilmu memahami pola perbedaan alokasi memori stack dan heap , di bahasa pemrograman java . Selengkapnya ,berikut mari kita simak lebih lanjut :


Apa itu fungsi Stack ?

Stack yakni bab dari memori ,yang dipakai untuk pengalokasian memori secara statis. Serta untuk alamat memorinya , yang dipakai untuk menyimpan data dan variable , sudah ditentukan semenjak awal ketika proses kompilasi , bukan ketika runtime(program berjalan). Dalam metode penyimpananya , stack memakai LIFO (Last In First Out), yang dimana setiap data terakhir yang masuk akan pertama kali keluar. Ini sanggup kita analogikan ke dalam kehidupan sehari-hari ,seperti contohnya  sebuah tumpukan buku atau tumpukan piring.
Stack juga dipakai untuk mengeksekusi sebuah Thread. Sebagai bab dari memori ,stack hanya menyimpan variabel primitif lokal dan variable referensi. Stack sangat cepat , akan tapi kurang dalam segi ukuran , dibandingkan dengan memori heap.

Apa itu fungsi Heap ?

Heap yakni bab dari memori ,yang dipakai untuk pengalokasian memori secara dinamis. Serta untuk mengalamatkan memorinya , akan dimulai , ketika runtime(program berjalan). Karena dialokasikan secara dinamis , sehingga lokasi memorinya tidak mempunyai pola , atau sanggup disebut acak. Kapanpun kita menciptakan suatu objek , akan selalu otomatis  dibentuk , dan ditempatkan di dalam memori heap.
Sedangkan untuk variable rujukan dari objek, akan ditempatkan di dalam memori stack. Setiap objek yang dibentuk di dalam heap ,akan mempunyai saluran global ,dan sanggup direferensikan , dimana saja dari suatu progam aplikasi.

Sekarang kalian sanggup perhatikan pola code di bawah :

Contoh Code :


 keduanya merupakan bab dari sistem memori  Belajar Mengenal Perbedaan Alokasi Memori Stack vs Heap di Java
Contoh Code

Ketika kita mencoba menjalankan pola code jadwal di atas , kira-kira  visualisasi atau ilustrasinya , akan menjadi menyerupai pada  gambar di bawah:

 keduanya merupakan bab dari sistem memori  Belajar Mengenal Perbedaan Alokasi Memori Stack vs Heap di Java
Contoh gambaran memori stack vs heap

Penjelasan :

Seperti yang kalian lihat pada pola gambar gambaran di atas, yang  menggambarkan ihwal proses alokasi memori stack dan heap , ketika jadwal java berjalan di komputer.

Pertama-tama , pada baris code int x = 15 dan int y = 30 ,yang merupakan variable tipe data primitif. Akan disimpan ke dalam memori stack.

Sedangkan untuk variable rujukan a dan b , akan disimpan ke memori stack , dan untuk objeknya akan disimpan ke memori heap.

Selanjutnya, untuk text ,yang merupakan tipe data String, nilai atau valuenya akan disimpan di string pool , di dalam memori heap.

Baca juga : Perbedaan Tipe Data Primitif dan Referensi di Program Java

Perbedaan Antara Memori Stack dan Heap :

  • Tipe data primitif , dan rujukan untuk objek , akan disimpan ke dalam memori stack
  • Setiap objek akan mengambil space di dalam memori heap
  • Memori stack kurang dari memori heap
  • Memori stack berisi variable lokal untuk sebuah jadwal aplikasi. Memori heap berisi objek yang di saluran secara global di dalam sebuah jadwal aplikasi
  • Dalam perkara cara kerja  memori stack, ketika variable  dihapus , maka ruang memori bebas akan  disediakan  untuk variabel lain , sesudah code terakhir dieksekusi.
  • Dalam perkara kerja memori heap , kalau ada rujukan yang mengacu ke objek , maka objek itu akan mempertahankan space atau ruang di memori heap. Sedangkan , ketika objek tidak mempunyai rujukan yang tersedia , maka objek yang dimaksud akan mati, dan  garbage collector akan menghapus objek itu dari memeori heap ,  untuk mempertahankan ruang ,yang disediakan untuk objek lain

Loading...