java值传递和引用传递的题目_这题不会!别说你懂值传递与引用传递
时间: 2023-09-13 14:05:24 浏览: 78
好的,我会为你解答这个问题。
在 Java 中,基本类型是按值传递,而对象类型是按引用传递。
简单来说,按值传递意味着将实参的值复制到形参中,形参的改变不会影响实参的值。而按引用传递则是将实参的引用复制到形参中,形参和实参指向同一块内存空间,所以形参的改变将会影响实参的值。
下面是一个例子:
```java
public class Main {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
swap(num1, num2);
System.out.println("num1 = " + num1 + ", num2 = " + num2);
}
public static void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
}
```
输出结果为:num1 = 10, num2 = 20。因为在 swap 方法中,num1 和 num2 的值被复制到了 a 和 b 中,交换 a 和 b 的值并不会影响到 num1 和 num2。
再看一个例子:
```java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
change(arr);
System.out.println(Arrays.toString(arr));
}
public static void change(int[] a) {
a[0] = 10;
}
}
```
输出结果为:[10, 2, 3]。因为在 change 方法中,a 和 arr 指向同一块内存空间,所以改变 a 数组中的值会影响到 arr 数组。
希望这个例子能帮助你理解值传递和引用传递的区别。