gpt4 book ai didi

java - 在循环中创建对象

转载 作者:IT老高 更新时间:2023-10-28 20:57:53 26 4
gpt4 key购买 nike

在循环中创建对象是一种好习惯吗?我指向以下代码:

for(some condition){
SomeClass a = new SomeClass ();
System.out.println(a);
}

所以这将为每次迭代创建一个新的 SomeClass 实例。所以实例数将等于迭代次数。然后这些将被 GC 收集。

在循环中重用 SomeClass 对象会更好吗?像这样的:

SomeClass a = null;

for(some condition) {
a = new SomeClass();
System.out.println(a);
}

据我了解,第二种方法更好,因为它只会创建一次 SomeClass 对象,并在每次迭代中重用它。但我很怀疑。请确认这一点,或者让我知道我的基础不正确的地方。

最佳答案

不同之处在于,在第二种情况下,当循环结束时,您的 a 变量仍将在范围内

除此之外,它们本质上是相同的,即使从垃圾收集的角度来看也是如此。

字符串是引用类型(尽管是不可变的),无论您是为它们声明一个新变量还是每次都覆盖同一个变量,这并不重要。您仍然每次都在创建一个全新的字符串。

关于java - 在循环中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21860573/

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