繁体   English   中英

在Java中重用循环中变量的首选方法

[英]Preferred Way to Reuse Variable in a Loop in Java

出于以下情况,这是重用section向量的首选方法?

Iterator<Vector> outputIter = parsedOutput.iterator();

while(outputIter.hasNext()) {
    Vector section = outputIter.next();
}

要么

Vector section = null;

while(outputIter.hasNext()) {
    section = outputIter.next();
}

第二种方式意味着变量section在循环外部可见。 如果你没有在循环之外使用它,那么就没有必要这样做,所以使用第一个选项。 就性能而言,应该没有任何明显的差异。

我更喜欢第二个版本,因为在循环结束后你的范围内没有未使用的变量。

但是,怎么样

for (Vector section: parsedOutput) {
    ...
}

如果你不使用循环外的section ,那么你的第一种风格会更好。

直观地说,我会选择解决方案的第二个变体。 但最后它几乎取决于优化器,它可能会改变你的代码。 尝试编译代码,然后查看生成的字节码以查看发生的情况。 您可以使用javap查看生成的内容或任何其他可用的反编译器。

最后,即使这样,代码也可能在运行时以其他方式进行优化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM