交换a、b的值temp = a; a = b; b = temp;比a = a^b;b = a^b;a = a^b;快

先看代码,交换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


发现使用赋值交换比位运算交换两个数的值要快将近一倍。

原文地址:https://www.cnblogs.com/blfbuaa/p/6715435.html