java
Stack di java adalah bagian dari memori yang berisi metode, variabel lokal, dan variabel referensi. Memori tumpukan selalu direferensikan dalam urutan Last-In-First-Out. Variabel lokal dibuat di tumpukan.
Heap adalah bagian dari memori yang berisi Objek dan mungkin juga berisi variabel referensi. Variabel instan dibuat di heap
Alokasi Memori di Java adalah proses di mana bagian memori virtual disisihkan dalam program untuk menyimpan variabel dan contoh struktur dan kelas. Namun, memori tidak dialokasikan ke objek saat deklarasi tetapi hanya referensi yang dibuat. Untuk alokasi memori objek, digunakan metode new(), sehingga objek selalu mengalokasikan memori di heap.
Alokasi Memori Java dibagi menjadi beberapa bagian berikut:
Pembagian memori ini diperlukan untuk manajemen yang efektif.
Variabel instans dideklarasikan di dalam kelas tetapi tidak di dalam metode
class Student{ int num; // num is instance variable public void showData{}
Variabel lokal dideklarasikan di dalam sebuah metode termasuk metode argumen .
public void sum(int a){ int x = int a + 3; // a , x are local variables; }
Klik di sini jika video tidak dapat diakses
Mari kita ambil contoh untuk memahami hal ini dengan lebih baik.
Pertimbangkan bahwa metode utama Anda memanggil metode m1
public void m1{ int x=20 }
Dalam stack java, sebuah frame akan dibuat dari metode m1.
Variabel X di m1 juga akan dibuat dalam bingkai untuk m1 di tumpukan. (Lihat gambar di bawah).
Metode m1 memanggil metode m2. Di stack java, sebuah frame baru dibuat untuk m2 di atas frame m1.
Variabel b dan c juga akan dibuat dalam bingkai m2 dalam tumpukan.
public void m2(int b){ boolean c; }
Metode yang sama m2 memanggil metode m3. Sekali lagi bingkai m3 dibuat di atas tumpukan (lihat gambar di bawah).
Sekarang katakanlah metode kita m3 sedang membuat objek untuk kelas "Akun", yang memiliki dua variabel instance int p dan int q.
Account { Int p; Int q; }
Berikut adalah kode untuk metode m3
public void m3(){ Account ref = new Account(); // more code }
Pernyataan new Account() akan membuat objek akun di heap.
Variabel referensi “ref” akan dibuat di stack java.
Operator penugasan “=" akan membuat variabel referensi untuk menunjuk ke objek di Heap.
Setelah metode menyelesaikan eksekusinya. Alur kontrol akan kembali ke metode pemanggilan. Yang dalam hal ini adalah metode m2.
Tumpukan dari metode m3 akan dihapus.
Karena variabel referensi tidak akan lagi menunjuk ke objek di heap, itu akan memenuhi syarat untuk pengumpulan sampah.
Setelah metode m2 menyelesaikan eksekusinya. Itu akan dikeluarkan dari tumpukan, dan semua variabelnya akan dihapus dan tidak lagi tersedia untuk digunakan.
Begitu juga untuk metode m1.
Akhirnya, aliran kontrol akan kembali ke titik awal program. Yang biasanya merupakan metode “utama”.
Bagaimana jika Objek memiliki referensi sebagai variabel instannya?
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, variabel referensi "anak" akan dibuat di heap, yang pada gilirannya akan menunjuk ke objeknya, seperti diagram yang ditunjukkan di bawah ini.
Ringkasan:
java
Apa itu Pengumpulan Sampah di Jawa? Pengumpulan Sampah di Jawa adalah proses dimana program melakukan manajemen memori secara otomatis. Pengumpul Sampah (GC) menemukan objek yang tidak digunakan dan menghapusnya untuk mendapatkan kembali memori. Di Java, alokasi memori dinamis objek dicapai dengan
Apa itu Java? Java dirilis oleh Sun Microsystem pada tahun 1995. Ini dikembangkan oleh James Gosling. Ini adalah bahasa pemrograman tujuan umum yang dirancang dengan tujuan khusus yang memungkinkan pengembang untuk menulis setelah dijalankan di mana saja. Aplikasi Java dikompilasi menjadi bytecode
Metode Java adalah kumpulan pernyataan yang dikelompokkan bersama untuk melakukan operasi. Saat Anda memanggil System.out.println() metode, misalnya, sistem benar-benar mengeksekusi beberapa pernyataan untuk menampilkan pesan di konsol. Sekarang Anda akan mempelajari cara membuat metode Anda sendir
Tanya Jawab Java 8 telah dirancang dengan tujuan khusus untuk membantu siswa dan profesional mempersiapkan berbagai Ujian Sertifikasi dan Wawancara Kerja . Bagian ini menyediakan kumpulan contoh Pertanyaan Wawancara dan Pertanyaan Pilihan Ganda (MCQ) yang berguna beserta jawabannya dengan penjelasan