先看代码,交换a、b的值十亿次
<span style="font-size:14px;"> int a=222;
int b=111;
int size = 1000000000;
int temp=0;
long start = System.nanoTime();
for (int i = 0; i < size; i++) {
temp = a;
a = b;
b = temp;
}
System.out.println("用时ns:"+(System.nanoTime()-start));
a=222;
b=111;
start = System.nanoTime();
for (int i = 0; i < size; i++) {
a = a^b;
b = a^b;
a = a^b;
}
System.out.println("用时ns:"+(System.nanoTime()-start));</span>
运行结果(纳秒):
用时ns:996150
用时ns:1769620
发现使用赋值交换比位运算交换两个数的值要快将近一倍。