<分区>
我知道在座的所有人都知识渊博,而且通常都非常善于解释,所以我想征求你们的意见。
我看过一些关于按值传递语言和按引用传递语言之间的区别的帖子和文章,它们让我很好奇如何实现交换方法。这是特别有趣的,因为学校项目和个人项目都/将使用交换方法来工作。我确实在 this question 中找到了 Marcus 的一个相当新颖的解决方案如果我找不到另一个,我会使用它。
我的理解是,不可能实现以下内容并使 x = 5, y = 10
作为结果:
int x = 10; int y = 5;
swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
swap(x, y);
//x = 10, y = 5
System.out.println("x was 10 and y was 5");
System.out.println("Now x is " + x + ", and y is " + y);
}
但是,据我所知,以下内容会起作用,因为没有传递 x 和 y:
int x = 10; int y = 5;
swap() {
int temp = x;
x = y;
y = temp;
}
public static void main(String[] args) {
swap();
//x = 5, y = 10
}
如何交换两个图元?同一个对象的两个实例怎么样(我只需要交换字段/变量)?在数组中进行交换时,我必须考虑什么特殊事项吗?