三元運算子與if..else有時能互換,之前總是使用if..else,也不知道他兩之間效能怎樣。今天做個測試對比一下。
package test;
public class test
private static void test1()
long endtime = system.currenttimemillis();
system.out.print(endtime - starttime);
}private static void test2()
long endtime = system.currenttimemillis();
system.out.print(endtime - starttime);}}
通過迴圈測試兩者執行時間,結果對比如下:
相對來看是三元運算效能較優吧,但是這個優勢並不明顯。而且,使用三元運算子,問號後面的型別如果不同的話會帶來一些型別方面的問題。比如:
三元運算子和ifelse
原理 cpu處理模式 首先,需要明白cpu底層的處理方式。cpu是通過流水線處理來獲得高效能的。所謂流水線,簡單來說就是當cpu在處理當前指令的時候,後面已經有n條指令在後面排隊等待你去執行了。這樣,當你要執行下一條指令的時候,你不用再去找那條指令,它已經乖乖跟在前一條指令的屁股後面等你去執行了。i...
位運算子與三元運算子
1 按位與運算子 int m 6,b,c 4,d,t b m c 按位與,兩個操作位數中位都為1,結果才為1,否則結果為0。轉換為二進位制 m 6,0110 c 4,0100 結果為 0100 b 4 system.out.println b 2 按位或運算子 int m 6,b,c 4,d d m...
三元運算子
根據條件執行兩個語句中的其中乙個。test?語句1 語句2引數 test 任何boolean 表示式。語句1當 test 是true時執行的語句。可以是復合語句。語句2當 test 是false時執行的語句。可以是復合語句。說明?運算子是if.else語句的快捷方式。它通常被用作較大表示式的一部分,...