对于上述问题(在实际开发时不经常使用),有两种思路:
- 可以通过两个变量的和/差不变原则,通过加减运算变换两个整数的值。此方法有局限性,如果两个数的数值过大,会超出范围,会强制转换,数据会发生变化。
class test
{
public static void main(String[] args)
{
int a = 3, b = 5;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a = " + a + ",b = " + b);
}
}
2. 通过位运算符异或(^)操作,利用任何数与0进行异或操作后的结果都为该数本身的特性。
class test
{
public static void main(String[] args)
{
int a = 3, b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a + ",b = " + b);
}
}