有两种方法:
public class Test {
public static void main(String[] args) {
method1();
method2();
}
private static void method1() {
int a = Integer.MAX_VALUE;
int b = Integer.MIN_VALUE;
System.out.println("交换前" + a + "," + b);
a = a + b;
b = a - b;
a = a - b;
System.out.println("交换后" + a + "," + b);
}
private static void method2() {
int a = Integer.MAX_VALUE;
int b = Integer.MIN_VALUE;
System.out.println("交换前" + a + "," + b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("交换后" + a + "," + b);
}
}
结果:
交换前2147483647,-2147483648
交换后-2147483648,2147483647
交换前2147483647,-2147483648
交换后-2147483648,2147483647