猿问

为什么切换比不快

我在Java中发现了很多书籍,其中说switch语句比if else语句要快。但是我没有发现有其他地方在说为什么切换要比切换更快。


我有一种情况,我必须选择两项中的任何一项,我可以使用以下任一方式


switch(item){


case BREAD:

     //eat Bread

break;

default:

    //leave the restaurant


}

或使用如下的if语句


if(item== BREAD){

//eat Bread

}else{

//leave the restaurant

}

考虑项目和BREAD是恒定的int值


在上面的示例中,哪个操作更快,为什么?


慕田峪7331174
浏览 353回答 3
3回答

FFIVE

因为有很多情况下,有一些特殊的字节码可以有效地评估switch语句。如果使用IF语句实现,则将进行检查,跳转到下一个子句,进行检查,跳转到下一个子句等。通过切换,JVM加载要比较的值,并遍历值表以查找匹配项,这在大多数情况下会更快。

眼眸繁星

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

相关分类

Java
我要回答