借助第三个变量实现两个变量的交换:
public class java_06 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("交换前:a=="+a+" "+"b=="+b);
// 原理是,两个变量的交换需要借助一个中间变量进行交换
int c = a;
a = b;
b = c;
System.out.println("交换后:a=="+a+" "+"b=="+b);
}
}
使用异或运算符实现两个变量的交换:
public class java_06 {
public static void main(String[] args) {
int a = 3; //二进制是11
int b = 4; //二进制是100
System.out.println("交换前:a=="+a+" "+"b=="+b);
// 原理是,使用异或运算符进行交换
a = a^b; //a=a^b=11^100=111
b = a^b; //b=a^b=111^100=011=3
a = a^b; //a=a^b=111^011=100=4
// 最终就转换完成了
System.out.println("交换后:a=="+a+" "+"b=="+b);
}
}
【异或】就是将两个数字转为二进制之后进行的比较运算,同为0 ,异为1
例如:3 ^ 4 ,结果为7.同理,3 ^ 3的结果为0.
总结:最后一种使用异或的方法交换变量效率最高,推荐~