为了账号安全,请及时绑定邮箱和手机立即绑定

为什么切换比不快

为什么切换比不快

慕田峪7331174 2019-10-29 11:11:48
我在Java中发现了很多书籍,其中说switch语句比if else语句要快。但是我没有发现有其他地方在说为什么切换要比切换更快。例我有一种情况,我必须选择两项中的任何一项,我可以使用以下任一方式switch(item){case BREAD:     //eat Breadbreak;default:    //leave the restaurant}或使用如下的if语句if(item== BREAD){//eat Bread}else{//leave the restaurant}考虑项目和BREAD是恒定的int值在上面的示例中,哪个操作更快,为什么?
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

因为有很多情况下,有一些特殊的字节码可以有效地评估switch语句。

如果使用IF语句实现,则将进行检查,跳转到下一个子句,进行检查,跳转到下一个子句等。通过切换,JVM加载要比较的值,并遍历值表以查找匹配项,这在大多数情况下会更快。


查看完整回答
反对 回复 2019-10-29
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

一个switch说法是并不总是比一个快if言。它的伸缩性比一长串的if-else语句更好,因为它switch可以基于所有值执行查找。但是,对于短期情况,它不会更快,并且可能会更慢。


查看完整回答
反对 回复 2019-10-29
  • 3 回答
  • 0 关注
  • 352 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信