在项目中,我们会经常会用到if_else结构,在简单条件下,三目运算符能完成同样的功能。
但是这两个语句哪个更好,哪个效率更高呢?下面我们就一起来看一下:
简单的用java写一个for循环:
下面这个是三目运算符:
使用javap 命令将两个字节码文件反汇编成汇编语言,分别如下:
可以看到,三目运算符的指令比if_else的指令少一个由此看来,应该是三目运算符的执行效率更高一些。
但是理论和实际是有一些差距的。还是有必要亲自测试一下。
同样是100 000次循环,使用StopWatch计算的时间竟然相差不多。这是为什么呢?
这是因为在java的虚拟机中,两种语句的指令都经过了优化,所以效果是一样的。
但是在实际应用中,还是推荐使用三目运算符,因为它看起来比较简洁而且易读性较强。