当前位置: 首页 > 面试题库 >

在循环内部还是外部声明对象?

云弘壮
2023-03-14
问题内容

以下代码段是否会降低性能?

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;
}

如果在字节码中这两个完全相等,那么显然第一种方法在样式方面看起来更好,但我想确保确实如此。


问题答案:

在当今的编译器中,没有。我在最小范围内声明对象,因为对于下一个家伙而言,它更具可读性。



 类似资料:
  • 问题内容: 我相信在AS3中,您应该在循环外初始化所有变量,以提高性能。JavaScript也是如此吗?哪个更好/更快/最佳实践? 要么 问题答案: 有 绝对没有区别 意义还是性能,在JavaScript或ActionScript。 是解析器的指令,而 不是 运行时执行的命令。如果在函数体(*)中的任何位置一次或多次声明了特定的标识符,则该标识符在块中的所有使用将引用局部变量。声明是在循环内部,循

  • 问题内容: 为什么以下工作正常? 但是据说这是危险的/不正确的: 是否需要在循环外声明变量? 问题答案: 局部变量的范围应始终尽可能小。 在你的例子我相信是不会使用的外while循环,否则你就不会问这个问题,因为它声明的内部while循环不会是一个选项,因为它不会编译。 所以,既然是不使用外循环,在尽可能小的范围是内 while循环。 所以,答案是着重那绝对应该被while循环内声明。没有,没有,

  • 直到今天,我才知道java有堆,堆是由JVM创建的。此外,这个内存是由操作系统分配给JVM实例的,即堆驻留在JVM实例中。 这表明,JVM和堆相距甚远。 所以,我现在很困惑,有谁能让我知道,我以前是错的还是我不能理解这幅画?

  • 我试图在任意年份的经济衰退中计算复利。以下promise函数计算可变投资组合的发展。 编辑的清晰度: const是一个从1到20循环一年的数组(是静态的) 三元()在每次运行的不同年份触发,导致不同年份的

  • 模板特化可以被显式声明,这可以作为消除多重实例化的一种方式。例如: #include "MyVector.h" extern template class MyVector<int>; // 消除下面的隐式实例化 // MyVector 类将在“其他地方”被程序员显式实例化 void foo(MyVector<int>& v) { //在这个地方使用vector类型 } 下列代码就是上例

  • 问题内容: 我有一个div元素,并且在该div中,我们在p元素之间有文本。 我想添加一个标题。它应该放在p的内部还是外部? 哪个更好: 要么 问题答案: 无法将heading元素放置在HTML标记的元素内,不仅是形式上的,而且因为浏览器在遇到标题时会隐式终止一个打开的元素。所以这个问题是没有意义的:一个在特定上下文中不存在的元素在那个上下文中不能有任何意义(语义)。 您可以使用元素,也可以使用HT