【发布时间】:2011-06-10 01:15:57
【问题描述】:
java 中有两种类型的 if 语句 - 经典:if {} else {} 和简写:exp ? value1 : value2。一个比另一个快还是一样?
声明:
int x;
if (expression) {
x = 1;
} else {
x = 2;
}
三元运算符:
int x = (expression) ? 1 : 2;
【问题讨论】:
-
我猜绝对没有区别。这只是语法。除非编译器有点邪恶(或其他),我错了
-
你做了(微)基准测试吗?分享结果。
-
两者都会被淘汰。根本不会有任何区别。并且不要费心反编译这些东西。 HotSpot 做的第一件事是去掉 javac 应用的所有优化。
-
它们不存在于不同的速度。它们存在于不同的目的。我相信您了解语句和表达式之间的区别。语句执行操作。表达式产生值。
if用于语句中。?用于表达式。 -
+1,因为即使原始问题的意图被误导,对这个问题的回答也值得一读。
标签: java performance if-statement shorthand premature-optimization