Semua objek pada bahasa pemrograman Java dialokasikan secara dinamis pada
Heap. Hal ini berbeda pada pemrograman C++ dimana objek dapat dialokasikan memorinya diantara
Stack atau
Heap. Pada Bahasa C++ ketika dialokasikan sebuah objek menggunakan new(), maka objek tersebut akan dialokasikan pada
Heap, jika tidak maka akan dialokasikan pada
Stack secara
global atau
static.
 |
Ilustrasi Memori Object Java |
Ketika dideklarasikan sebuah variabel dari
class dengan tipe data tertentu pada Java, hanya referensinya saja yang diciptakan sedangkan memorinya tidak dialokasikan untuk objek tersebut. Untuk dapat mengalokasikan memori pada objek, maka harus menggunakan
keyword new(). Sehingga memori objek akan selalu dialokasikan pada
Heap. Contoh program
yang gagal dalam mengalokasikan memori berikut ini.
Contoh:
class Test {
/* konten class */
void show()
{System.out.println("Test::"
+"show() called");}
}
public class Main {
/* Driver Code */
public static void main(String[] args)
{
Test t;
// Error karena t tidak
// diinisialisasi
t.show();
}
}
Contoh: Alokasi memori menggunakan keyword new() membuat program dapat dijalankan.
class Test {
/* konten class */
void show()
{System.out.println("Test::"
+"show() called");}
}
public class Main {
/* Driver Code */
public static void main(String[] args)
{
// semua objek dialokasikan
// secara dinamis
Test t = new Test();
t.show(); /* No error */
}
}
Artikel ini didedikasikan kepada: Devy Maria Kristiani, Diana Hidayati Utami, Emmanuel Putra Jatmiko, Erika Dwi Athala, dan Ferry Bangsawan.
Apa yang dimaksud dengan heap pada bahasa pemrograman Java?
BalasHapusHeap java merupakan area memori yang digunakan untuk menyimpan object yang dibuat oleh aplikasi yang berjalan pada JVM. Object yang berada pada heap dapat dibagikan diantara thread Java. Pada kebanyakan program, penggunaan heap dibatasi ukurannya menjadi 8Gb saja untuk meminimalkan jeda pengumpulan garbage.
HapusRuang penyimpanan Head pada bahasa pemrograman Java digunakan untuk alokasi memori dinamis untuk object java dan juga class JRE pada saat runtime. Object baru selalu diciptakan pada ruang heap dan referensi ke object ini akan disimpan dalam memori stack. Object-object tersebut memiliki akses global dari mana saja dalam program aplikasi.
BalasHapusApa perbedaan antara stack dan heap?
BalasHapusRuang Stack digunakan untuk menyimpan suatu urutan eksekusi method dan variabel lokal. Stack selalu menyimpan blok dalam urutan LIFO (Last In First Out). Sedangkan heap menggunakan alokasi memori dinamis untuk mengalokasikan dan membatalkan alokasi blok memori. Memori dialokasikan ke heap hingga salah satu dari event tertentu kemudian muncul, dan kemudian proses program akan diakhiri.
Hapus