gpt4 book ai didi

java - 创建 OBJECT 数组时如何分配内存(堆栈和堆引用)?

转载 作者:行者123 更新时间:2023-12-03 14:33:04 24 4
gpt4 key购买 nike

喜欢

public static student[] arr = new student[10];

现在,student 是一个具有一些实例变量 name(String)age(int) 的类。我想知道一旦这条线被执行会发生什么??十个引用都会获得内存还是我必须单独分配它们?如果尝试访问 student[5].age 会怎样?我需要知道内存分配状态..谢谢.................................

最佳答案

执行上述语句时,JVM 将创建 10 个连续的内存位置,每个都足够大以保存对 student 的引用。但是,这个数组将不包含任何引用或 null(如果您愿意的话)。当你执行像 arr[0] = new student(); 这样的语句时,一个 student 对象将在堆上创建,它的引用将保存在 arr[0 ]。请记住,数组也是在堆上分配的。

因此,一旦您创建了 10 个 student 对象,每个对象都将分配到堆上的某个位置,但它们的引用将存储在 arr

关于java - 创建 OBJECT 数组时如何分配内存(堆栈和堆引用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19400270/

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