传统方式
int a = 100;
int b = 200;
int temp = a;
a = b;
b = temp;
求和相减:
int x =5,y=10; //定义两个变量
x = x + y; //x(15) = 5 + 10;
y = x - y; //y(5) = x(15) - 10;
x = x - y; //x(10) = x(15) - y(5)
异或方式
/**
* 异或运算法则
* 1. a ^ b = b ^ a
* 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
* 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
* 4. a ^ b ^ a = b.
*/
int a = 100;
int b = 200;
a = a ^ b; // a = 100 ^ 200 = 175
b = a ^ b; // b = 175 ^ 200 = 100
a = a ^ b; // a = 175 ^ 100 = 100 ^ 200 ^ 100 = 200
异或方式(一行代码)
int x = 100;
int y = 200;
// 100 ^ (x=y) x = 200
// 100 ^ 200 ^ 200 y = 100
y = x ^ (x = y) ^ y;
推荐使用最后一种方式,注意:异或方式无法对对象进行操作。