我是靠谱客的博主 留胡子往事,最近开发中收集的这篇文章主要介绍java 三元运算符 效率_java – 哪个“if”结构更快 – 语句或三元运算符?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

只有一种类型的“if”语句。另一个是条件表达式。至于哪些将执行更好:他们可以编译为相同的字节码,我希望他们的行为相同,或者如此接近,你绝对不会想要选择一个在性能方面。

有时,if语句将更易读,有时条件运算符将更易读。特别是,我建议使用条件运算符时,两个操作数是简单和无副作用,而如果两个分支的主要目的是他们的副作用,我可能会使用一个if语句。

这里有一个示例程序和字节码:

public class Test {

public static void main(String[] args) {

int x;

if (args.length > 0) {

x = 1;

} else {

x = 2;

}

}

public static void main2(String[] args) {

int x = (args.length > 0) ? 1 : 2;

}

}

用javap -c反编译的字节码测试:

public class Test extends java.lang.Object {

public Test();

Code:

0: aload_0

1: invokespecial #1

4: return

public static void main(java.lang.String[]

Code:

0: aload_0

1: arraylength

2: ifle 10

5: iconst_1

6: istore_1

7: goto 12

10: iconst_2

11: istore_1

12: return

public static void main2(java.lang.String[

Code:

0: aload_0

1: arraylength

2: ifle 9

5: iconst_1

6: goto 10

9: iconst_2

10: istore_1

11: return

}

正如你可以看到,字节码在这里有一点区别 – 无论istore_1是发生在分支内还是不发生(不像我以前的巨大缺陷的尝试:)但我会很惊讶,如果JITter结束了不同的本地代码。

最后

以上就是留胡子往事为你收集整理的java 三元运算符 效率_java – 哪个“if”结构更快 – 语句或三元运算符?的全部内容,希望文章能够帮你解决java 三元运算符 效率_java – 哪个“if”结构更快 – 语句或三元运算符?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部