gpt4 book ai didi

java - jvm 如何处理在循环内创建对象

转载 作者:行者123 更新时间:2023-12-01 06:48:29 25 4
gpt4 key购买 nike

List list = new ArrayList();


String[] test = {"ram", "mohan", "anil", "mukesh", "mittal"};

for(int i =0; i < test.length; i++)

{

A a = new A();

a.setName(test[i]);

list.add(a);

}

JVM 如何在每个循环中处理对象 a 的创建?如何“列表”区分不同的实例?在每次迭代中创建对象是一个好习惯吗?如果不是,将对象添加到列表中的最佳解决方案是什么。

最佳答案

在您的示例中,循环的每次迭代都会创建一个新对象。该列表能够区分它们,因为它不关心您在代码中将它们全部称为“a”,它通过每次调用时重新分配的引用来跟踪它们

a = new A();

每次调用该行代码时,都会在堆上创建一个新对象,并将其在内存中的地址分配给引用 a。列表记录的是该引用,而不是变量名称。

这是填充列表的完美且正常的方式(除了其他人提到的语法错误,我假设您在尝试编译代码时可以修复这些错误)。

关于java - jvm 如何处理在循环内创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913712/

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