不借助第三个变量交换两个变量的值并且最高效
/**
* @author zc
*/
public class Replace {
public static void main(String[] args) {
/**题目:如何不借助第三个变量来实现两个变量间的替换
* 思路:
* 借助位运算异或技巧:一个值被异或2次就会被抵消
* */
int a = 3;
int b = 4;
/**a异或b */
a = a^b;
/**a再次异或b,而 a=a^b 代入就成了 b = (a^b)^b,b和b抵消,所以b的值就成了a的值 */
b = a^b;
/**a再次异或b,而 b=a^b 代入就成了 a = a^(a^b),a和a抵消,所以a的值就成了b的值 */
a = a^b;
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}