java中方法参数传递 值传递 和 引用传递有什么区别
在 Java 中,方法参数传递有两种类型:值传递和引用传递。
值传递
- 值传递是指将参数的副本传递给方法。
- 对于基本类型(如 int、double、boolean),值传递会创建参数值的副本并将其传递给方法。
- 对副本所做的任何更改都不会影响原始值。
引用传递
- 引用传递是指将参数的引用传递给方法。
- 对于对象(引用类型),引用传递会将指向对象的指针传递给方法。
- 对对象所做的任何更改都会影响原始对象。
示例:
考虑以下 Java 代码:
public class PassByValueDemo {
public static void main(String[] args) {
int x = 10;
changeValue(x); // 值传递
System.out.println(x); // 输出:10
String s = "Hello";
changeReference(s); // 引用传递
System.out.println(s); // 输出:World
}
public static void changeValue(int x) {
x = 20;
}
public static void changeReference(String s) {
s = "World";
}
}
在上面的示例中:
changeValue方法对基本类型变量x进行值传递。对x所做的更改不会影响原始值,因此main方法中打印的x值仍然为10。changeReference方法对引用类型变量s进行引用传递。对s所做的更改会影响原始对象,因此main方法中打印的s值变为World。
总结:
- 值传递传递参数的副本,对副本的更改不会影响原始值。
- 引用传递传递参数的引用,对对象的更改会影响原始对象。
浙公网安备 33010602011771号