当前位置:首页 » 编程语言 » java变量交换

java变量交换

发布时间: 2022-06-18 23:58:28

java中交换两个整数类型的变量

^ 在java中是位运算符,异或运算。你圈的那三行核心代码就是通过异或运算来交换变量A、B的值。

关于异或运算:异或运算

publicclassTest{
publicstaticvoidmain(String[]args){
intA=14;
intB=5;

A=A^B;
B=B^A;
A=A^B;

System.out.println("A="+A);//A=5
System.out.println("B="+B);//B=14
}
}

执行结果

inttemp=A;//引入一个中间变量
A=B;
B=temp;

㈡ java中如何交换两个引用类型的变量

同一类的可以,如 A a=new A("2");System.out.println(a.hashcode());//及a的物理地址(与内存地址相对应)
A b=new A("1");System.out.println(b.hashcode());//b的物理地址
A c=a;
a=b;
b=c;
System.out.println(a.hashcode());
System.out.println(b.hashcode());
输出的结果将会是a和b的hashcode()互换了,这说明了他们的内存和物理地址都互换了

㈢ Java中,先声明两个整型变量并赋值,然后将两个变量的值进行交换,求解

inti=5;
intj=6;

i=i+j;//5+6=11
j=i-j;//11-6=5
i=i-j;//11-5=6

两个变量之和不超出范围就没问题

㈣ java程序问题,如何用方法来交换两个整型变量的值

这个是基本数据类型传递的是值而不是指针,如楼上所说,实现交换比较复杂,用反射可以实现,我见过的方法很麻烦,比较简单但不实用的实现方式,给你个连接:http://blog.csdn.net/wbruce_leew/article/details/6759198

㈤ 怎么在java上完成,实现两个int类型变量的交换,不使用中间变量

方法有很多,这里举出两种常用的:
方法1:使用^操作来实现
int
x
=
10;
//用二进制表示:x=0b1010;
int
y
=
15;
//用二进制表示:x=0b1111;
System.out.println("x="+x+"
y="+y);
x
=
x^y;
//x^y=
0b1010^0b1111
=
0b0101
y
=
x^y;
//x^y=
0b0101^0b1111
=
0b1010
=10
x
=
x^y;
//x^y=
0b0101^0b1010
=
0b1111
=15
System.out.println("x="+x+"
y="+y);
方法2:使用+,-操作来实现
int
x
=
10;
int
y
=
15;
System.out.println("x="+x+"
y="+y);
x
=
x+y;
//x=
10+15=25
y
=
x-y;
//y=
25-15=10
x
=
x-y;
//x=
25-10=15
System.out.println("x="+x+"
y="+y);
结果:
x=10
y=15
x=15
y=10
早期为了减少中间变量对计算机内存的占用,采用中间的方法来交换数据。其实这种交换并不完美,如果交换的两个数都很大,可能会内存溢出。在现在的开发中建议使用中间值来交换数值。

㈥ java如何交换a和b的值

是两个变量的值吗 用一个中间变量temp就行了 temp=a a=b b=temp

㈦ java程序中,怎么互换2个变量的值

用第三个变量来存储
就是再申请一个变量。
int
num1=10;
int
num2=8;
int
temp=0
temp=num1;//将num1的值赋给中间变量temp
num1=num2;//将num2的值赋给num1;
num2=temp;//将temp的值赋给num2,num1和num2的值就互换了。
这个方法是最通用的,记住这个就行了。

㈧ 用JAVA写“对两个整数变量的值进行互换(不需要第三方变量)”程序

JAVA对两个整数变量的值进行互换(不需要第三方变量)的程序如下:

方法一(加减法):

a=a+b;

b=a-b;

a=a-b;

方法二(异或运算):

a=a^b;

b=a^b;

a=a^b;

代码实现如下:

publicclassDemo{
publicstaticvoidmain(String[]args){
intm=2,n=3;
//method_1(m,n);
method_2(m,n);
}
/**
*使用异或^
*明白一个数,如果异或同一个数两次,那么就等于本身
*/
privatestaticvoidmethod_3(intm,intn){
m=m^n;
n=m^n;
m=m^n;
System.out.println("m="+m+" n="+n);
}
/**
*使用自身的数组,加减运算
*/
privatestaticvoidmethod_2(intm,intn){
m=m+n;
n=m-n;
m=m-n;
System.out.println("m="+m+" n="+n);
}
}

㈨ 在JAVA中如何依靠第三个变量互换两个变量

如果可以使用第三个变量来进行互换变量,可以进行如下操作:
int a= 5 , b = 6;
int temp ;
temp = a ;
a = b;
b = temp;
这样就可以了。

也可以不使用第三变量:如下:
int a= 5 , b = 6;
a = a + b;
b = a - b;
a = a - b;
这样也是可以的。

㈩ 如何用java实现两个变量值的互换

可以利用以下方式:通过异或实现(异或符号为^)关于^:异或的运算法则,相当于不带进位的二进制加法。二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。第一个数 符号 第二个数 结果0 ^ 0 00 ^ 1 11 ^ 0 11 ^ 1 0如:num1 = 5,对应的二进制为(101); num2 = 7,对应的二进制为(111);num1=num1^num2=2; 即二的平方位1^1=0,二的一次方位0^1=1,二的0次方位1^1=0;得到(010)即为2。num2 = num1 ^ num2=5 ;相当于num2=num1^num2^num2;二的平方位1^1^1=1(此处无论num2的二的平方位是0还是1,异或运算后都为0,故得到的肯定与原num1的二的平方位相同,同理其他位置全部也都是原num1的数);二的一次方位0^1^1=0;二的0次方位1^1^1=1.;得到(101)即为5.num1 = num1^num2=7; 相当于num1 = num1^num2^num1^num2^num2=num2=7.此方法同样实现了两个数互换。

热点内容
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:481
php查询结果数组 发布:2025-02-06 12:31:05 浏览:716
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:498
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519
台式机忘记开机密码怎么办 发布:2025-02-06 11:58:01 浏览:871
android刷新按钮 发布:2025-02-06 11:57:17 浏览:586
存储过程有输入参数和输出参数 发布:2025-02-06 11:55:32 浏览:99
成绩评选算法 发布:2025-02-06 11:42:51 浏览:997
数据库测试数据 发布:2025-02-06 11:31:05 浏览:824