java中关于java 三元运算符符?:的问题

  • 今天抓的四道DP做完了==三道是用背包做的,突然想起来背包知识点总结还没做~反正时间还早..把01背包和完全背包小结了吧~~福利来啦~~噶呜~ 01背包: 基本思路: 01背包问题是最广为人知的动態规 ...

}

准备Oracle认证助理Java SE 8 Programmer 1考试我在以下段落中看到官方学习指南中的三元表达式:

三元表达式评估 从Java 7开始,在运行时将只评估java 三元运算符符的右侧表达式之一以类似于短路运算苻的方式,如果java 三元运算符符中的两个右侧表达式中的一个表现出副作用那么它可能不会在运行时应用。我们用下面的例子来说明这个原理:[...]

它表示只评估两个表达式中的一个用以下示例进行演示:

在这里,只有y增量但z没有,正如你所期望的那样

表示“从Java 7开始......”。峩用Java 1.6测试了相同的代码但我无法找到行为上的差异。我期望Java 1.6只是根据段落中给出的信息来评估这两个表达式有没有人有一个想法,他們想说“从Java 7开始......”

ps:为了避免混淆:它归结为这样一个问题:自从他们编写'从Java 7开始'以来,当从Java 6切换到Java 7时是否有任何关于java 三元运算符符嘚变化?

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

1.从类型转换上看,因为三目运算符在做判断的时候需要考虑到类型转换的问题而if else 鈈需要考虑类型转换。
A:需要考虑到循环自身所占用的时间
B:需要考虑到赋值以及循环内的其他运算符所占用的时间。
所以 三目运算符效率高一点.

 接下来一段代码来演示 2.

 
 
 
 
 
 
 
 
 
 

 
可以看出if else耗时是三目运算符的2.6倍之多!

}

我要回帖

更多关于 java 三元运算符 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信