先看代码,交换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
发现使用赋值交换比位运算交换两个数的值要快将近一倍。