值交换

值交换

Java程序中方法的参数只有一种传递方式:值传递
地址传递实际上就是在传指针变量的值(所指向空间的地址)
Java中常用三种值交换方式

  1. 引入中间变量
	public static void main(String[] args) {
		int num1 = 1;
		int num2 = 2;
		int tmp = 0;
		tmp = num1;
		num1 = num2;
		num2 = tmp;
	}

因为赋值操作中,原数值会因被赋值而消失,所以需用中间变量保留。
2. 异或(位运算)
原理:一个数被同一个数连续异或两次其值不变。

	public static void main(String[] args) {
		int num1 = 1;
		int num2 = 2;
		num1 ^= num2;//将num1^num2的值赋值给num1
		num2 ^= num1;//将num2的值赋值为num1开始的值
		num1 ^= num2;//将num2的初始值赋值给num1
	}
  1. 数值
    通过两者之间的数值关系来操作,这种方式也有其他形式。
	public static void main(String[] args) {
		int num1 = 1;
		int num2 = 2;
		num1 -= num2;
		num2 += num1;
		num1 = num2 -num1;
	}

猜你喜欢

转载自blog.csdn.net/qq_38637725/article/details/82966677