异或运算(^)
1.任何数异或0 都为自己本身
2.任何数和自己异或都为0
前提是:两个变量值可以相同,但所指向的内存要不一样,才能使用异或运算来交换。
public class Swap {
public Swap(int a,int b){
a = a ^ b; // a^b
b = a ^ b; // a^b^b=a
a = a ^ b; // a^b^a=b
System.out.println("交换后:a=" + a + "\tb=" + b);
}
public static void main(String[] args) {
int a = 19;
int b = 23;
System.out.println("交换前:a=" + a + "\tb=" + b);
Swap swap = new Swap(a,b);
}
}
输出
交换前:a=19 b=23
交换后:a=23 b=19