有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在循环内部或外部声明对象?

以下代码片段是否会导致性能损失

for (int i=0; i<someValue; i++)
{
    Object o = someList.get(i);
    o.doSomething;
}

或者这段代码真的更有意义吗

Object o;
for (int i=0; i<someValue; i++)
{
    o = someList.get(i);
    o.doSomething;
}

如果在字节码中,这两种方法是完全等效的,那么显然第一种方法在风格上看起来更好,但我想确保这是事实


共 (2) 个答案

  1. # 1 楼答案

    我得承认我不懂java。但这两个是等价的吗?对象的生命周期相同吗?在第一个示例中,我假设(不知道java)o在循环终止后立即有资格进行垃圾收集

    但是在第二个例子中,在外部作用域(未显示)退出之前,o肯定没有资格进行垃圾收集吗