Alokasi Memori di Jawa: Semua yang Perlu Anda Ketahui di 2022

Diterbitkan: 2021-01-10

Alokasi memori di java mengacu pada proses di mana program dan layanan komputer dialokasikan khusus untuk ruang memori virtual. Java Virtual Machine membagi memori menjadi Stack dan Heap Memory. Untuk Java Virtual Machine, mengeksekusi aplikasi secara maksimal dapat terjadi dari memori tumpukan dan tumpukan. Setiap kali variabel atau objek baru dideklarasikan, memori mengalokasikan memori yang didedikasikan untuk operasi tersebut.

Daftar isi

Memori Tumpukan

Alokasi Memori Stok di java digunakan untuk memori statis dan eksekusi utas. Nilai-nilai yang terkandung dalam memori ini bersifat sementara dan terbatas pada metode tertentu karena terus direferensikan dalam mode Last-In-First-Out.

Segera setelah memori dipanggil dan blok baru dibuat di memori tumpukan, memori tumpukan kemudian menyimpan nilai dan referensi primitif hingga metode bertahan. Setelah berakhir, blok dibilas dan tersedia untuk proses baru berlangsung. Secara umum, ukuran keseluruhan memori tumpukan tidak signifikan dengan memori tumpukan.

Pelajari cara membuat aplikasi seperti Swiggy, Quora, IMDB, dan lainnya

Karakteristik Memori Tumpukan

Berdasarkan bagian alokasi memori yang berbeda di Java Virtual Machine (JVM) , berikut adalah beberapa fitur diskrit memori tumpukan:

  • Memori tumpukan dapat bertambah atau berkontraksi karena metode baru dipanggil dan dikembalikan sesuai dengan itu.
  • Variabel apa pun dalam tumpukan dapat berjalan selama ruang lingkup metode ada.
  • Itu mendapat alokasi otomatis dan dealokasi saat dan ketika suatu metode mengalami eksekusi.
  • Dalam hal memori penuh, java.lang.StackOverFlowError akan aktif.
  • Ini lebih cepat dalam akses jika dibandingkan dengan memori heap.

Baca: Full-Stack vs. Software Engineer: Mana yang Harus Anda Pilih?

Metode yang digunakan dalam alokasi memori tumpukan di java

  • Object push(Object element): Di sini, item didorong ke atas tumpukan.
  • Objek pop(): Setiap elemen yang terletak di bagian atas tumpukan akan dihapus dan dikembalikan. Jika tumpukan kosong saat pop() dipanggil, pengecualian – EmptyStackException terjadi.
  • Object peek(): Di sini, elemen teratas dikembalikan tetapi tidak mengalami pembilasan.
  • Boolean kosong(): Jika perulangan tidak memiliki nilai tertinggi dalam tumpukannya, fungsi mengembalikan 1 (benar), jika tidak 0 (salah).
  • Dalam pencarian (Elemen objek): Ini digunakan untuk memahami apakah suatu objek ada di tumpukan. Jika nilainya ditemukan, fungsi mengembalikan lokasi elemen dari atas tumpukan, jika tidak mengembalikan -1.

Baca: Proyek & Topik Java Untuk Pemula

Ruang Tumpukan Jawa

Terutama digunakan oleh runtime java, Java Heap Space ikut bermain setiap kali sebuah objek dibuat dan dialokasikan di dalamnya. Fungsi diskrit, seperti Pengumpulan Sampah, terus mengosongkan memori yang digunakan oleh objek sebelumnya yang tidak memiliki referensi. Untuk objek yang dibuat di Heap Space dapat memiliki akses gratis ke seluruh aplikasi.

Alokasi Memory pada java dibagi menjadi beberapa bagian yaitu Heap, Stack, Code, dan Static.

Karakteristik Memori Heap Java

  • Dapat diakses dari teknik manajemen memori yang rumit, termasuk Generasi Muda, Generasi Tua atau Bertahan, dan Generasi Permanen.
  • Di memori heap, ketika penuh, ia mengembalikan java.lang.OutOfMemoryError.
  • Akses dalam memori ini relatif lebih lambat dibandingkan dengan memori tumpukan.
  • Itu tidak mengalami dealokasi otomatis dan memerlukan fungsi serupa seperti Pengumpul Sampah untuk menghapus benda asing agar memori bekerja pada tahap optimalnya.

Contoh alokasi memori stack dan heap di java adalah:

Sumber

Ruang Heap dan Memori Tumpukan: Perbedaan Mendasar

Memori Ruang Tumpukan Memori Tumpukan
Semua bagian aplikasi memanggil memori heap. Eksekusi memori tumpukan terbatas pada satu utas.
Setiap kali sebuah objek dibuat, itu disimpan di ruang heap. Memori tumpukan hanya terdiri dari referensi dan variabel primitif lokal.
Objek di sini dapat diakses secara global di seluruh aplikasi. Utas lain tidak dapat mengakses objek memori tumpukan.
Di sini, memori didefinisikan menurut generasi muda dan tua. Manajemen memori terjadi berdasarkan Last-In-First-Out.
Memori tetap sesuai dengan ruang lingkup aplikasi. Memori bersifat sementara.
Metode seperti – XMX dan XMS JVM digunakan untuk menentukan ukuran memori heap yang optimal. Untuk memori tumpukan, itu ditentukan oleh metode -XSS.
Di sini, pengecualian java.lang.OutOfMemoryError terjadi dalam kasus memori penuh. Di sini, kesalahan java.lang.StackOverFlowError terjadi jika memori penuh.
Ukurannya lebih banyak tetapi membutuhkan waktu untuk memproses dibandingkan dengan memori tumpukan. Ukurannya lebih kecil tetapi lebih cepat dalam eksekusi untuk operasi LIFO yang mulus.

Baca juga: Gaji Developer Java di India

Pelajari Kursus Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Kesimpulan

Alokasi memori di java terjadi dalam dua cara, terutama, ruang tumpukan dan tumpukan. Kami harap ini membantu Anda dalam memahami proses itu semua.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang pengembangan perangkat lunak tumpukan penuh, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Tumpukan Penuh yang dirancang untuk para profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek, dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Bagaimana manajemen memori terjadi di Jawa?

Java Virtual Machine (JVM) adalah program komputer yang digunakan untuk menjalankan program yang ditulis dalam bahasa pemrograman Java. Itu membuat proses penggunaan manajemen memori menjadi efisien. Selain itu, ini dirancang untuk menjadi kuat sehingga bahkan jika ada crash di sistem operasi, program yang berjalan di JVM tidak terpengaruh. Manajemen memori berarti mengelola setiap bagian dari memori (RAM) dalam sistem komputer. JVM memonitor pengalokasian dan pelepasan memori saat dibutuhkan. Segera setelah program dimuat ke dalam memori, JVM mengalokasikan ruang memori untuk itu. Proses ini disebut tumpukan. Heap adalah ruang memori umum untuk banyak bagian aplikasi.

Apa itu Pengumpulan Sampah di Jawa?

Java Virtual Machine (JVM) menggunakan penghitungan referensi untuk melacak jumlah objek Java. Sebelum objek apa pun dapat dikumpulkan, jumlah referensi ke objek ini harus mencapai nol. Program pengguna dapat secara eksplisit menghapus objek dengan memanggil metode finalize(). Finalize adalah metode statis di kelas Object yang disebut oleh Garbage Collector (GC). Metode finalisasi akan melepaskan semua sumber daya objek sebelum Pengumpul Sampah akan menangani objek ini. Garbage Collector adalah proses pembersihan benda-benda yang tidak diinginkan. Proses Garbage Collector akan dipicu ketika sistem run-time Java mendeteksi bahwa Java heap hampir penuh. Setiap objek memiliki bitmap di JVM. Bitmap diatur untuk setiap objek untuk melacak apakah itu telah digunakan atau tidak. Ketika bitmap diubah menjadi 0, GC akan menangani objek ini.

Apa saja ciri-ciri bahasa pemrograman Java?

Bahasa Pemrograman Java adalah tujuan umum, bahasa pemrograman tingkat tinggi yang digunakan untuk membangun aplikasi dan applet. Perangkat lunak Java dapat berjalan di platform apa pun yang mendukung Java tanpa diprogram ulang. Fitur bahasa pemrograman Java adalah: Fitur berorientasi objek, Kuat, Keamanan Tinggi, dan Platform-independen, Bebas Biaya, Mudah Dipelajari dan digunakan. Java adalah bahasa pemrograman berorientasi objek yang tidak bergantung pada platform dan juga dapat digunakan pada OS atau platform apa pun. Java adalah bahasa yang dikompilasi dan bytecode diproduksi yang kemudian dieksekusi di Java Virtual Machine.