在Java中,哪个会更有效,并且有什么区别?
if (null == variable)
要么
if (variable == null)
(类似于此问题:null == object和object==null之间的区别)
我要说的是,这两个表达式在性能上绝对没有区别。
然而,有趣的是,两种情况下的编译字节码(由OpenJDK的javac发出)看起来有些不同。
对于boolean b = variable == null
:
3: aload_1 // load variable
4: ifnonnull 11 // check if it's null
7: iconst_1 // push 1
8: goto 12
11: iconst_0 // push 0
12: istore_2 // store
对于boolean b = null == variable
:
3: aconst_null // push null
4: aload_1 // load variable
5: if_acmpne 12 // check if equal
8: iconst_1 // push 1
9: goto 13
12: iconst_0 // push 0
13: istore_2 // store
正如@Bozho所说,variable == null
是最常见,默认和首选的样式。
但是,在某些情况下,我倾向于放在null
前面。例如在以下情况下:
String line;
while (null != (line = reader.readLine()))
process(line);
问题内容: 以下三个功能中哪个更有效? 请以可接受的具体逻辑答复。 问题答案: 前者是更有效时,是。两者何时不相同。与的比较只是两个32位整数的比较,这是非常快速的运算。抛出异常的代价很高,因为应该创建新对象并且应该填充堆栈跟踪。 三进制运算符与语句完全一样有效,因为两者都被转换为相同的字节码。
null 它是功能性的,但丑陋,不是“最佳实践”。怎么简化呢?
问题内容: 谈论Java性能..哪个更好?if..else或多个if 要么 对您的想法感兴趣 谢谢! 问题答案: 在性能方面没有区别。选择最易读的选项,具体取决于代码的功能。 通常,不必担心这些微优化。只有在确定存在需要解决的性能问题后,才能进行优化。 “我们应该忘记效率低下的问题,大约有97%的时间是这样:过早的优化是万恶之源。” -唐纳德·努斯
问题内容: 在PHP脚本中-这样的if语句将检查什么? 我已经多次看到它在脚本中使用过,现在我真的很想知道它的“作用”。它什么都不丢失;它只是if语句中的一个普通变量…我在任何地方都找不到关于此的任何结果,因此显然我在发布此内容时看起来会很愚蠢。 问题答案: 该构造进行测试以查看是否评估为任何“真实”值。它可以是boolean ,也可以是非空,非NULL值或非零数字。看看PHP文档中的布尔值评估列
问题内容: 考虑以下两行代码 和 在性能上,以上两个语句有什么区别吗?我见过很多人使用后者,当被问及他们说这是最佳实践时,没有充分的理由。 问题答案: 没有不同。 第二个原因仅仅是因为C / C ++程序员总是执行分配而不是比较。 例如 而java编译器会生成编译错误。 因此,由于可读性强,我个人更喜欢第一个,人们倾向于从左到右阅读,而不是。
好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,