在 Java 中,值传递和引用传递是两种不同的参数传递方式。
值传递:当将基本数据类型(如 int
、double
、boolean
等)作为参数传递给方法时,传递的是变量的值的副本。这意味着在方法内部对参数的修改不会影响到原始变量的值。
例如:
public class ValuePassingExample { public static void main(String[] args) { int num = 5; modifyValue(num); System.out.println(num); // 输出仍然是 5 } public static void modifyValue(int num) { num = 10; } }
在上述例子中,modifyValue
方法内部对 num
的修改不会影响到 main
方法中的 num
变量。
引用传递:当将对象或数组作为参数传递给方法时,传递的是对象或数组的引用的副本。这意味着在方法内部对对象或数组的属性进行修改,会影响到原始对象或数组。
例如:
public class ReferencePassingExample { public static void main(String[] args) { MyClass obj = new MyClass(); obj.value = 5; modifyObject(obj); System.out.println(obj.value); // 输出是 10 } public static void modifyObject(MyClass obj) { obj.value = 10; } } class MyClass { int value; }
在这个例子中,通过 modifyObject
方法修改了对象 obj
的属性 value
,在 main
方法中可以看到修改后的结果。
总的来说,理解值传递和引用传递对于正确编写和理解 Java 程序中的方法调用和参数处理非常重要。