在Java中,內存被分為兩種類型:棧內存和堆內存。
棧內存是用于存儲局部變量和方法參數的地方,它是一塊較小的內存,在方法運行時被分配。當方法運行結束時,棧內存中的數據也被釋放。
堆內存是用于存儲對象的地方,它是一塊較大的內存,需要手動分配和釋放。當一個對象被創建時,它就被分配在堆內存中。當它不再被引用時,它就可以被垃圾回收器回收。
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } public static void main(String[] args) { Person p = new Person("Tom", 27); // p是在堆內存中分配的Person對象 }
在上面的例子中,當調用new Person()時,JVM在堆內存中分配一塊空間來存儲一個Person對象,并將變量p指向這個對象。所以p是存儲在棧內存中指向堆內存中的Person對象。