900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java 三元 代替 if_Java 中三元和 if else 哪个的效率比较高 有底层解释吗 谢谢了!...

java 三元 代替 if_Java 中三元和 if else 哪个的效率比较高 有底层解释吗 谢谢了!...

时间:2023-03-22 09:59:07

相关推荐

java 三元 代替 if_Java 中三元和 if else 哪个的效率比较高 有底层解释吗 谢谢了!...

Genokiller

-12-28 18:16:11 +08:00

是否还有其他影响效率的地方

两段简短的测试代码:

Test2.java (三元运算符)

public class Test2

{

public static void main(String args[])

{

int m =1, n=2;

String s = m > n ? "a" : "b";

}

}

Test3.java ( if...else...)

public class Test3

{

public static void main(String args[])

{

int m = 1, n = 2;

if(m > n) {

String s = "a";

}

else {

String s = "b";

}

}

}

编译后用 javap 反编译得到下面指令码:

Compiled from "Test2.java"

public class Test2 extends java.lang.Object{

public Test2();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."":()V

4: return

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

Code:

0: iconst_1

1: istore_1

2: iconst_2

3: istore_2

4: iload_1

5: iload_2

6: if_icmple 14

9: ldc #2; //String a

11: goto 16

14: ldc #3; //String b

16: astore_3

17: return

}

----------------------------------------

Compiled from "Test3.java"

public class Test3 extends java.lang.Object{

public Test3();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."":()V

4: return

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

Code:

0: iconst_1

1: istore_1

2: iconst_2

3: istore_2

4: iload_1

5: iload_2

6: if_icmple 15

9: ldc #2; //String a

11: astore_3

12: goto 18

15: ldc #3; //String b

17: astore_3

18: return

}

---------------------

作者:crazygou

来源:CSDN

原文: /CrazyGou/article/details/1655593

版权声明:本文为博主原创文章,转载请附上博文链接!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。