java中有两种类型的if语句:if {} else {}和速记:exp ? value1 : value2。是一个比另一个快,还是它们一样?
声明:
int x;
if (expression) {
x = 1;
} else {
x = 2;
}三元运算符:
int x = (expression) ? 1 : 2;发布于 2011-01-17 01:00:26
您的两个示例都可能编译成相同或几乎相同的字节码,因此在性能上应该没有差别。
如果在执行速度上存在差异,您仍然应该使用最常用的版本(第二个版本用于根据一个简单的条件和两个简单的子表达式分配单个变量,而第一个版本用于执行更复杂的操作或不适合一行的操作)。
发布于 2011-01-17 01:00:33
这些都是一样的。它们都相当快,通常在10-30纳秒左右。(取决于使用模式)这个时间框架对您重要吗?
你应该做你认为最清楚的事情。
发布于 2011-01-17 01:12:51
只是补充一下所有其他的答案:
第二个表达式通常称为第三/三元运算符/语句。它可能非常有用,因为它返回一个表达式。有时,对于典型的简短语句,它会使代码更清晰。
https://stackoverflow.com/questions/4706696
复制相似问题