gpt4 book ai didi

java - 对象数组内存分配(堆栈和堆)

转载 作者:行者123 更新时间:2023-12-02 12:56:29 32 4
gpt4 key购买 nike

我已经初始化了一个类对象数组,我很好奇它们如何在内存中分配(堆栈和堆),我从教科书中找到了一段代码,它绘制了内存分配位于下面左侧

我的问题是:为什么内存分配不是我右边画的,在下面的代码中,new Person[]{new Person ("Simon", 20)...}new Person 对象会将其内存地址分配给 per[0],但是 per[0] 是在执行 Person[] per = new Person[3] 时在堆中创建的。

类对象数组的初始化

 class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}

public class Main {
public static void main(String[] args) {
Person[] per = new Person[]{new Person("Simon", 20), new Person("John", 21), new Person("Willy", 22)};
}
}
  1. Left(TextBook)

  2. My Thought

最佳答案

why the memory allocation is not the one I draw on the right,

它在右侧,但如果您要使用该值

per

per[0]

该引用将被放入堆栈中。

关于java - 对象数组内存分配(堆栈和堆),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407283/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com