Java 面试题 交换两个变量的值的两种方式,使用异或 ^

一、开发常用的方式—第三方变量法

System.out.println("-------1.普通开发使用的第三方替换法----------");
int a1 = 1;
int b1 = 2;
int x ;
x = a1;
a1 = b1;
b1 = x;
System.out.println("交换后: a1 = "+a1);
System.out.println("交换后: b1 = "+b1);

Run:
-------1.普通开发使用的第三方替换法----------
交换后: a1 = 2
交换后: b1 = 1

二、使用 异或运算符号 ^

1,原理:

1. ^是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1.
2. a^b^a = a

2. code

System.out.println("--------2.面试问到的异或计算法---------");
System.out.println("原理:a^b^a = a ");
int a2 = 1;
int b2 = 2;
a2 = a2^b2;
b2 = a2^b2;//b2 = a2^b2^b2 = a2
a2 = a2^b2;//a2 = a2^b2^b2 = b2
System.out.println("交换后: a2 = "+a2);
System.out.println("交换后: b2 = "+b2);

Run:

--------2.面试问到的异或计算法---------
原理:aba = a
交换后: a2 = 2
交换后: b2 = 1

你可能感兴趣的:(Java面试题)