「java交换两个类的值」java交换两个类的值相同
本篇文章给大家谈谈java交换两个类的值,以及java交换两个类的值相同对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在 Java 应用程序中如何编写一个方法来交换两个基本类型的值或两个对象引用的值呢?
- 2、java 类之间数值的传递
- 3、怎么在java上完成,实现两个int类型变量的交换,不使用中间变量
- 4、Java中交换两个整数类型的变量
在 Java 应用程序中如何编写一个方法来交换两个基本类型的值或两个对象引用的值呢?
基本类型值的交换与C一样。比如:
int tmp = a;
a = b;
b = tmp;
引用值的交换业和上面类似,这又叫做浅拷贝。比如:
Object tmp = a;
a = b;
b = tmp;
如果要将类中的所有成员都复制,需要深拷贝。比如:
Object tmp = a.clone();
a = (Object)b.clone();
b = (Object)tmp.clone();
这里方法clone由用户自定义。
java 类之间数值的传递
Java语言中方法间的数据传递方法
方法是数据加工处理或相应操作的基本模块,为了实现某种需求而调用一个方法,需要为被调用的方法传递数据,以便于被调用的方法依据所提供的数据进行相应的操作。
C++语言的函数间的数据传递可以分为:数值传递、地址传递和引用传递。地址传递的形参是同类型的指针,由于指针操作的不安全等问题,Java语言屏弃了指针,故Java语言方法之间的数据传递只有数值传递和引用传递。
1方法间的数值传递
所谓的数值传递又称为值传递,数值传递的特征是:调用方法的实参可以是常量、变量或者是表达式,形参则是对应数据类型的变量。如果实参是变量,则实参
和形参是相互独立的两个单元。在方法调用的过程中,实参的值将拷贝到形参中,此后形参的任何修改都不会影响实参。数值传递方法见例1。
[例1]数值传递调用方法举例:
importjava.io.*;
public class ValueTransmit
{publicstatic void main(Stringargs[])
{intx=5,y=66;
System.out.println(“在主方法,交换前的:x=”+x+“,y=”+y);
swap(x,y);
System.out.println(“在主方法,交换后的:x=”+x+“,y=”+y);
}
static voidswap(int x,int y)
{int temp;
System.out.println(“在swap方法未交换时:x=”+x+“,y=”+y);
temp=x;x=y;y=temp;
System.out.println(“在swap方法交换之后:x=”+x+“,y=”+y);
}
}
例1程序的输出结果如下所示:
在主方法, 交换前的:x=5,y=66
在swap方法未交换时:x=5,y=66
在swap方法交换之后:x=66,y=5
在主方法, 交换前的:x=5,y=66
在例1程序中,方法调用的“swap(x,y);”中的实在参数x,y是两个单元,而形式参数中的x,y又是两个单元,它们是互相独立的。所以,对形式参数的改变并不影响实在参数的内容;程序的运行结果也验证上述观点。
2方法间的引用传递
方法之间的数据传递还有一种方法,就是引用传递。引用传递的实质就是将实在参数的地址传递给形式参数引用,也就是形式参数是实在参数的别名。
怎么在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中交换两个整数类型的变量
^ 在java中是位运算符,异或运算。你圈的那三行核心代码就是通过异或运算来交换变量A、B的值。
关于异或运算:异或运算
public class Test {
public static void main(String[] args) {
int A = 14;
int B = 5;
A = A ^ B;
B = B ^ A;
A = A ^ B;
System.out.println("A = " + A); // A = 5
System.out.println("B = " + B); // B = 14
}
}
执行结果
就现在的实际开发来说这种写法适合装逼。
在现在的实际开发中通常是下面这样写的,简单易懂
int temp = A; // 引入一个中间变量
A = B;
B = temp;
java交换两个类的值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java交换两个类的值相同、java交换两个类的值的信息别忘了在本站进行查找喔。