gpt4 book ai didi

java - 是否为每次迭代创建了 for 循环内的引用变量声明?

转载 作者:行者123 更新时间:2023-11-29 06:51:27 25 4
gpt4 key购买 nike

<分区>

前两个例子:

1)
MyClass myClass;
for (int i=0; i<arrayList.size(); i++) {
myClass = arrayList.get(i);
...
}


2)
for (int i=0; i<arrayList.size(); i++) {
MyClass myClass = arrayList.get(i);
...
}

在第一个示例中,引用变量 myClass 仅创建一次。但是在第二个例子中,它是只创建一次,还是每次迭代创建一次?我的想法是编译器可能对此进行了优化,我不知道。

我试图通过编写示例来回答这个问题,但无法弄清楚。如何通过代码证明?

注意:我意识到示例 2 是更好的样式,因为 myClass 在 for 循环之外是未知的,并且它的范围保持在最小范围内。我也在这里搜索过,但还没有找到这个确切问题的明确答案(通常是“哪个是首选?”的问题。)我还假设如果每次迭代都创建 myClass 引用,那么性能就不是很好问题。

编辑:同样,我不是在问哪种编码风格更好。另外,我想知道是否可以通过代码推导/证明它。我尝试生成并比较字节码,但我不熟悉字节码,生成的内容也不完全匹配。

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