色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 內存模型堆和棧

江奕云1年前8瀏覽0評論

在Java中,內存被分為堆和棧兩個部分。堆內存用于存儲對象實例,而棧內存用于存儲方法調用和線程的執行。

public void stackTest() {
int a = 1;
String b = "hello";
stackTest1(a, b);
}
public void stackTest1(int c, String d) {
System.out.println(c + d);
}

上面這段代碼展示了Java程序的棧內存使用。

在代碼執行時,當方法stackTest()被調用時,Java虛擬機(JVM)會分配一塊棧幀用于保存參數a和b,然后將棧幀入棧。接著,當方法stackTest1()被調用時,JVM又會分配一塊棧幀用于保存參數c和d,然后將其入棧。

當方法執行結束時,JVM會將棧幀出棧,釋放空間。

public class HeapTest {
public static void main(String[] args) {
Person p1 = new Person("Tom");
Person p2 = new Person("Jerry");
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
}

上面這段代碼展示了Java程序的堆內存使用。

當程序中創建一個對象實例時,JVM會在堆內存中分配一塊空間來存儲對象的屬性值。在上面的例子中,當創建p1和p2對象時,JVM會在堆內存中分別分配空間來保存它們的name屬性。

堆內存中的空間由垃圾回收器來進行管理和釋放,當對象不再被引用時,會被垃圾回收器回收。