Beispiele für Java-Heap- und Stack-Anwendungen

Das Folgende ist ein einfaches Java-Programm, das die Verwendung von Java-Heap und -Stack demonstriert:

public class HeapAndStackExample {  
    public static void main(String[] args) {  
        // 创建一个对象并分配在堆内存中  
        Person person1 = new Person("Tom", 20);  
          
        // 创建另一个对象并分配在堆内存中  
        Person person2 = new Person("Jerry", 22);  
          
        // 方法调用,创建一个新的栈帧  
        int age = getAge(person1);  
          
        // 方法调用,创建一个新的栈帧  
        int name = getName(person2);  
          
        // 打印结果  
        System.out.println("person1's age: " + age);  
        System.out.println("person2's name: " + name);  
    }  
      
    // 获取Person对象的年龄  
    public static int getAge(Person person) {  
        return person.getAge();  
    }  
      
    // 获取Person对象的姓名  
    public static int getName(Person person) {  
        return person.getName();  
    }  
}  
  
class Person {  
    private String name;  
    private int age;  
      
    // 构造函数  
    public Person(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
      
    // 获取姓名  
    public String getName() {  
        return name;  
    }  
      
    // 获取年龄  
    public int getAge() {  
        return age;  
    }  
}


In diesem Programm erstellen wir zwei Person-Objekte und weisen sie im Heap-Speicher zu. Dann haben wir zwei Methoden aufgerufen, die das Alter und den Namen jedes Personenobjekts ermittelten. Dabei wird beim Aufruf der Methode ein neuer Stapelrahmen erstellt und Parameter und lokale Variablen im Stapelrahmen gespeichert. Wenn die Methode ausgeführt wird, wird der entsprechende Stapelrahmen vom Stapel entfernt und der Speicher freigegeben.

Dieses Programm demonstriert die Anwendungsszenarien von Java-Heap und -Stack in Programmen. Durch das Erstellen von Objekten und deren Zuweisung im Heap-Speicher können wir Objekte dynamisch erstellen und freigeben. Gleichzeitig können wir durch die Verwendung des Stapelspeichers beim Aufrufen von Methoden lokale Variablen, Parameter und Rückgabeadressen speichern und den Speicher nach Ausführung der Methode automatisch freigeben.

おすすめ

転載: blog.csdn.net/qq_54276699/article/details/131889322