java中 若有多个判断条件 switch比if效率更高
来源:互联网 发布:硬盘数据彻底删除软件 编辑:程序博客网 时间:2024/05/19 23:12
刚刚也就个人想了解下,在此整理下两者之间的对比及效率更优的原因
两者对比:
1、两者都是条件比较语句,但是IF的比较范围更广,IF能处理所有的boolean类型的结果值,switch只能处理byte、short、int类型的数值比较。
2、两者都是在匹配后执行代码块,IF会按顺序执行直到匹配正确条件,执行完该代码块,后续不加选择跳出,switch则是从匹配代码块处开始往下执行,只有遇到break才跳出,否则执行到最后。
switch比if效率更优原因:
首先,我们都知道switch只能进行整型数值判断,既然是整形那么这里的问题就来了,我们知道,一般的局部变量都存储在堆栈里面,当我们要进行运算的时间读入了寄存器,
那么对于多个数值的比较,如下:
(1)、IF说明:
int a =10;
if(a==1){}elseif(a==2){}elseif(a==10){}else{} 这段代码,对于a,在每次比较时,都会把a从堆栈中读入寄存器,直到匹配a==10,这样会造成多次读入,而寄存器不会识别这是同一个变量,造成运行过程中的资源浪费。
(2)、switch说明:
int a =10;
switch(a){case 1: break; case 2:break;case 10:break;default:;} 这段代码,中,swith最开始会将整个switch中的比较参数加载到内存,在我们传入参数a的时候,只需要读取一次a变量,然后直接匹配内存中的变量10所在地址,减少了匹配中进行比较的次数,用内存空间代价换区时间效率,同时在加载变量时也减少了资源的浪费。
综上,在使用明确数值比较的条件语句时,从效率跟时间上,switch效率要优于if。
- java中 若有多个判断条件 switch比if效率更高
- java中if-else为什么比switch效率低
- java中else if比switch效率低的原因
- java else if 为什么比 switch 效率低?
- switch/while/if条件判断
- java中for语句 if 和 switch 是条件判断语句小析
- java中if和switch哪个效率快
- 黑马程序员-------java中if和switch条件语句小结
- 为什么switch的效率要比 if else 高?
- java条件语句if和switch比较
- 条件判断if 和 case...esac 判断(相当于switch)
- 【面试题】不用if,条件表达式,switch等判断语句------找出两个数中较大的
- js中if条件判断
- shell中条件判断if
- shell中IF条件判断
- Java switch与if...else if...else效率对比
- 第十节 java if else switch 条件语句,switch 穿透
- java中if判断条件语句测试代码总结
- Hhadoop-2.7.0中HDFS写文件源码分析(二):客户端实现之DFSPacket
- java设计模式——解释器模式(Interpreter Pattern)
- 数字电视节目搜索策略
- 单例模式
- Loadrunner性能指标分析
- java中 若有多个判断条件 switch比if效率更高
- Android开发框架
- Extjs----comboBox使用
- iReport文字自动换行设置
- STM32启动时RAM空间堆(Heap)和栈(stack)的分配
- javascript经典实例
- wxwidgets 获取系统信息
- 程序的时间和空间复杂度
- Struts2+Spring4+Hibernate4整合系列--(四)StepByStep3