有两种方法:
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