四种方式交换a与b 的值–(java面试题)

package other;

public class MyTest {

public static void main(String[] args) {
//交换两个数的位置
//第一种
int a=10;
int b=145;
System.out.println("第一种:a="+b+"\t"+"b="+a);
//第二种
int c;
c=a;
a=b;
b=c;
System.out.println("第二种:a="+a+"\t"+"b="+b);
//第三种
int x=a+b;
a=x-b;
b=x-a;
System.out.println("第三种:a="+a+"\t"+"b="+b);
//第三种 一个数亦或同一个数两次,结果还是那个数
a=(a^b)^b;
b=(b^a)^a;
System.out.println("第四种:a="+a+"\t"+"b="+b);
}

}
package com.change;
class changTest {

public void change(int num1,int num2){
int temp;
temp=num1;
num1=num2;
num2=temp;
}
public void change(String str1,String str2){
String temp;
temp=str1;
str1=str2;
str2=temp;
}
}
public class Test {
public static void main(String[] args) {
int a =100;
int b =200;
System.out.println("交换前:a="+a+"b="+b);
//调用方法
new changTest().change(a,b);
System.out.println("交换后:a="+a+"b="+b);

String str1="Hello";
String str2="World";
System.out.println("交换前:str1: "+str1+" str2: "+str2);
new changTest().change(str1,str2);
System.out.println("交换后:str1: "+str1+" str2: "+str2);
}
}

结果–

四种方式交换a与b 的值--(java面试题)_System

内存分析,看不懂的话可以直接私聊—

四种方式交换a与b 的值--(java面试题)_System_02