Java的引用传递和值传递
时间: 2024-06-13 19:06:01 浏览: 15
Java中的参数传递有两种方式:值传递和引用传递。对于基本数据类型,如int、float、double等,它们是按值传递的,即在方法调用时,实参将自己的值传递给形参,形参接收到的是实参值的一个副本,对形参的修改不会影响实参的值。而对于对象类型,如数组、类、接口等,它们是按引用传递的,即在方法调用时,实参将自己的引用传递给形参,形参接收到的是实参引用的一个副本,但实参和形参指向的是同一个对象,对形参的修改会影响实参指向的对象。
以下是Java中值传递和引用传递的示例代码:
值传递示例:
```java
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a, b);
System.out.println("a = " + a + ", b = " + b); // 输出:a = 10, b = 20
}
public static void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
}
```
引用传递示例:
```java
public class Test {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
change(arr);
System.out.println(Arrays.toString(arr)); // 输出:[4, 5, 6]
}
public static void change(int[] array) {
for (int i = 0; i < array.length; i++) {
array[i] += 3;
}
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)