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

哪个具有更好的性能:test!= null或null!= test

赵炯
2023-03-14
问题内容

考虑以下两行代码

if (test ! = null)

if (null != test)

性能上,以上两个语句有什么区别吗?我见过很多人使用后者,当被问及他们说这是最佳实践时,没有充分的理由。


问题答案:

没有不同。

第二个原因仅仅是因为C / C ++程序员总是执行分配而不是比较。

例如

// no compiler complaint at all for C/C++
// while in Java, this is illegal.
if(a = 2) {
}
// this is illegal in C/C++
// and thus become best practice, from C/C++ which is not applicable to Java at all.
if(2 = a) {
}

而java编译器会生成编译错误。

因此,由于可读性强,我个人更喜欢第一个,人们倾向于从左到右阅读,if test is not equal to null而不是null is not equal to test



 类似资料:
  • 问题内容: 在Java中,哪个会更有效,并且有什么区别? 要么 问题答案: (类似于此问题:null == object和object==null之间的区别) 我要说的是,这两个表达式在性能上绝对没有区别。 然而,有趣的是,两种情况下的编译字节码(由OpenJDK的javac发出)看起来有些不同。 对于: 对于: 正如@Bozho所说,是最常见,默认和首选的样式。 但是,在某些情况下,我倾向于放在

  • 问题内容: 我写了两种方法检查那里的表现 并在编译后检查它的字节码 在这里,两个操作码用于实现if条件:在第一种情况下,它使用ifnull-检查栈顶值是否为null-;在第二种情况下,它使用if_acmpeq- 检查栈顶值是否相等- 那么,这会对性能产生影响吗?(这将帮助我证明null的第一个实现在性能方面以及可读性方面都不错:)) 问题答案: 比较生成的字节码几乎没有意义,因为大多数优化是在运行

  • 问题内容: 有时我们可以同时使用派生表和临时表编写查询。我的问题是哪个更好?为什么? 问题答案: 派生表是一种逻辑构造。 可以将其存储在中,在运行时通过在每次访问时重新评估基础语句来构建,甚至可以对其进行优化。 临时表是一种物理构造。它是在其中创建的表,并在其中填充了值。 哪种更好取决于查询所使用的查询,用于派生表的语句以及许多其他因素。 例如,每次使用时都可以(并且很可能会)重新评估in中的(公

  • 问题内容: String s = “”; for(i=0;i<....){ s = some Assignment; } 要么 我不需要在循环外再次使用“ s”。第一个选项可能更好,因为不会每次都初始化一个新的String。但是,第二个结果将导致变量的范围仅限于循环本身。 编辑:回应米尔豪斯的回答。在循环中将String分配给常量是没有意义的吗?不,这里的“某些分配”是指从要迭代的列表中获得的变化

  • 问题内容: 使用哪种更好或更方便: 要么 问题答案: 您是否完全需要类型属性?如果您使用的是HTML5,则不会。否则,是的。HTML 4.01和XHTML 1.0 根据需要指定属性,而HTML5具有可选属性,默认为。HTML5现在得到了广泛的实现,因此,如果您使用HTML5doctype,则是有效且不错的选择。 至于type属性中应该包含的内容,2006年注册的MIME类型旨在替代所有主要浏览器(

  • 问题内容: 我正在优化我的大型应用程序。我对以下两种方法感到困惑,请帮助确定哪种方法更快。 内联样式属性 使用ng样式 使用一次样式 注意 :对于,我使用了AngularOnce指令。 提前致谢。请告诉我哪个更快,为什么。 问题答案: 由于您正在优化相当大的应用程序,因此性能肯定受到质疑,我认为性能会更好,因为它可以在模型上设置监视,并且仅当模型更改时才会更新视图。 因此,我会选择还是根据您的情况