Java 方法返回值为 void 时,传入对象值是否被修改
如果传入的对象是可变对象(如数组、集合、自定义类等),并且在方法中对其进行了修改操作,则方法过后,传入对象的值会被修改。但是如果传入的对象是不可变对象(如字符串、基本数据类型等),则无法修改其值。
可变对象
可变对象是指其内部状态可以被修改的对象。例如,数组、集合和自定义类等。当你在方法中修改了可变对象的内部状态时,这些修改会反映在方法调用后的原始对象中。
不可变对象
不可变对象是指其内部状态一旦创建就不能被修改的对象。例如,字符串和基本数据类型等。当你在方法中试图修改不可变对象的值时,实际上是创建了一个新的对象,而不是修改原对象。
示例
public class Main {
public static void modifyArray(int[] arr) {
arr[0] = 100;
}
public static void main(String[] args) {
int[] myArray = {1, 2, 3};
modifyArray(myArray);
System.out.println(myArray[0]); // 输出:100
}
}
在这个例子中,modifyArray() 方法接收一个数组作为参数,并修改了数组的第一个元素。由于数组是可变对象,myArray 的值在方法调用后被修改了。
public class Main {
public static void modifyString(String str) {
str = "Hello World!";
}
public static void main(String[] args) {
String myString = "Hello";
modifyString(myString);
System.out.println(myString); // 输出:Hello
}
}
在这个例子中,modifyString() 方法接收一个字符串作为参数,并试图修改字符串的值。由于字符串是不可变对象,myString 的值在方法调用后并没有被修改。
结论
当方法返回值为 void 时,传入的对象是否会被修改取决于对象本身的特性。可变对象可以被修改,而不可变对象则无法修改。在使用这些对象时,需要根据其特性来进行相应的处理。
原文地址: https://www.cveoy.top/t/topic/jODp 著作权归作者所有。请勿转载和采集!