方法1:
public class Test {
public static void main(String[] args) {
// 测试数据
int a = 1;
int b = 2;
// b = a + b = 1 + 2 = 3
b = a + b;
// a = b - a = 3 - 1 = 2
a = b - a;
// b = b - a = 3 - 2 = 1
b = b - a;
// 输出交换之后的a和b的值
System.out.println(a);
System.out.println(b);
}
}
结果:
2
1
方法2:
public class Test {
public static void main(String[] args) {
// 测试数据
int a = 1;
int b = 2;
// b = a ^ b = 1 ^ 2 = 01B ^ 10B = 11B = 3
b = a ^ b;
// a = b ^ a = 3 ^ 1 = 11B ^ 01B = 10B = 2
a = b ^ a;
// b = b ^ a = 3 ^ 2 = 11B ^ 10B = 01B = 1
b = b ^ a;
// 输出交换之后的a和b的值
System.out.println(a);
System.out.println(b);
}
}
结果:
2
1
解释:
a异或b可以获得一个结果,无论这个结果异或a或者b都是可以得到另外一个数字的