Kawasan memori mesin maya Java ialah kawasan masa jalan yang digunakan untuk melaksanakan pelbagai program yang terlibat semasa masa jalan aplikasi java, kawasan memori JVM secara meluas dibahagikan kepada lima bahagian berbeza iaitu kawasan kaedah, kawasan timbunan, Stack, kawasan daftar pembilang program (PC) dan kawasan kaedah asli. Dalam artikel ini, kita akan membincangkan pelbagai jenis memori dalam java.
IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olokSeperti yang kita tahu bahawa java ialah bahasa berorientasikan objek; oleh itu, semua objek yang dibuat dalam java disimpan dalam JVM (mesin maya Java). Memori JVM pada asasnya dibahagikan kepada bahagian berikut:
Semua utas pelaksana berkongsi bahagian kawasan memori JVM ini. Elemen kelas seperti kolam malar, medan kelas, kod pembina, kod kaedah, dll. Kawasan kaedah boleh dianggap sebagai sebahagian daripada kawasan timbunan tetapi menyimpan data setiap kelas sahaja. Kita boleh katakan bahawa kawasan kaedah bertanggungjawab untuk menyimpan maklumat peringkat kelas.
Heap Memory dalam java digunakan oleh java runtime untuk memperuntukkan memori kepada objek dan kelas semasa pelaksanaan program java. Setiap kali objek dibuat dalam java, ia akan disimpan ke dalam memori timbunan. Proses pengumpulan sampah berjalan pada memori timbunan untuk mengosongkan ruang yang tidak diperlukan iaitu pengumpulan sampah membuang objek tersebut daripada kawasan timbunan yang tidak mempunyai sebarang rujukan. Heap memory dalam java dibahagikan kepada bahagian berikut:
Berikut adalah beberapa perkara penting mengenai ingatan timbunan java:
Seperti namanya, ingatan tindanan adalah berdasarkan prinsip LIFO (masuk terakhir, keluar dahulu). Memori tindanan digunakan untuk peruntukan memori statik, dan setiap utas pelaksana dalam program java mempunyai ingatan tindanan sendiri. Setiap kali kaedah Java dipanggil, blok baharu dicipta dalam memori tindanan java untuk memegang pembolehubah tempatan atau perantaraan dan rujukan kepada objek lain dalam kaedah tersebut. Sebaik sahaja pelaksanaan kaedah selesai, blok memori dalam timbunan menjadi kosong dan digunakan oleh kaedah seterusnya. Saiz memori Stack adalah kurang berbanding memori timbunan. Berikut ialah beberapa ciri penting memori tindanan.
Fungsi utama daftar pc adalah untuk menyimpan alamat yang sedang melaksanakan arahan. Ia juga menyimpan alamat benang yang bertanggungjawab untuk melaksanakan arahan semasa. Saiz memori yang diperuntukkan kepada daftar pc adalah sangat kecil. Aplikasi Java yang dilaksanakan dalam JVM tidak mempunyai sebarang kesan pada memori daftar pc atau kandungannya.
Kawasan ini dilaksanakan menggunakan bahasa selain java. Dengan penciptaan benang baharu, memori diperuntukkan di kawasan ini untuk setiap utas yang dibuat. Saiz kawasan asli boleh ditetapkan atau dinamik.
Sekarang kita akan melihat contoh java yang menunjukkan bagaimana memori diperuntukkan:
Kod:
package com.edubca.javademo; class StudentData { int rollNumber; String name; public StudentData(int rollNumber, String name) { super(); this.rollNumber = rollNumber; this.name = name; } public int getRollNumber() { return rollNumber; } public void setRollNumber(int rollNumber) { this.rollNumber = rollNumber; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Main { public static void main(String[] args) { int id = 11; String name = "Yash"; StudentData s = null; s = new StudentData(id, name); System.out.println("Student Id is " + s.getRollNumber()); System.out.println("Student Name is " + s.getName()); } }
Output:
Peruntukan Memori:
Sekarang kita akan melihat bagaimana memori diperuntukkan dalam program di atas:
Atas ialah kandungan terperinci Jenis Memori dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!