Pemahaman mendalam tentang struktur dan fungsi memori JVM memerlukan contoh kod khusus
public class Person { private String name; private int age; // 构造方法 public Person(String name, int age) { this.name = name; this.age = age; } // Getter和Setter方法 // ... public static void main(String[] args) { Person person = new Person("Alice", 20); System.out.println(person.getName()); // 输出 "Alice" } }
Dalam kod sampel di atas, kami mencipta objek Orang dan memberikan nilai kepada nama dan atribut umurnya. Objek Orang ini akan diperuntukkan dalam ingatan timbunan. Saiz memori timbunan boleh dilaraskan melalui parameter baris arahan -Xmx dan -Xms.
public class StackExample { public static void main(String[] args) { int a = 5; int b = 10; int c = 0; c = add(a, b); System.out.println(c); // 输出 "15" } public static int add(int x, int y) { return x + y; } }
Dalam kod sampel di atas, kami menentukan tiga pembolehubah tempatan a, b dan c dalam kaedah utama dan memberikan nilai masing-masing kepada mereka. Kemudian kami memanggil kaedah tambah dan lulus a dan b sebagai parameter kepada kaedah tambah. Parameter x dan y dalam kaedah tambah juga merupakan pembolehubah tempatan. Dalam kaedah tambah, kami menambah x dan y dan mengembalikan hasilnya. Akhir sekali, kami mengeluarkan nilai c, iaitu 15, dalam kaedah utama.
Seperti yang anda lihat, tindanan digunakan terutamanya untuk panggilan kaedah dan penyimpanan pembolehubah setempat. Setiap kali anda memasukkan kaedah, JVM akan memperuntukkan ruang bingkai tindanan secara automatik untuk kaedah menyimpan parameter kaedah dan pembolehubah setempat. Apabila kaedah menyelesaikan pelaksanaan, bingkai tindanan akan dimusnahkan.
public class MethodAreaExample { private static final String CONSTANT = "Hello, world!"; private static int count = 0; public static void main(String[] args) { System.out.println(CONSTANT); // 输出 "Hello, world!" System.out.println(count); // 输出 "0" count++; System.out.println(count); // 输出 "1" } }
Dalam kod sampel di atas, kami mentakrifkan CONSTANT malar dan kiraan pembolehubah statik. Pemalar dan pembolehubah statik disimpan dalam kawasan kaedah. Dalam kaedah utama, kami mengeluarkan nilai pemalar dan pembolehubah statik masing-masing, dan menambah 1 kepada nilai kiraan sebelum mengeluarkannya. . Fungsi mereka agak kecil, jadi kami tidak akan menerangkannya melalui contoh kod khusus buat masa ini.
Atas ialah kandungan terperinci Penerokaan yang mendalam tentang susun atur dan fungsi memori JVM. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!