淘先锋技术网

首页 1 2 3 4 5 6 7

在Java中,参数传递分为值传递和引用传递两种方式。值传递是传递复制后的参数值,而引用传递是传递参数的引用地址。

public class Main {
public static void main(String[] args) {
int num = 10;
String str = "Hello World";
change(num, str);
System.out.println(num);
System.out.println(str);
}
public static void change(int num, String str) {
num = 20;
str = "Hello Java";
}
}

在上面的代码中,我们可以看到我们传递了两个参数,一个是int类型的num,一个是String类型的str。在change方法中,我们改变了num和str的值。但是在主方法中我们打印出的num和str的值却没有变化。

原因是在Java值传递中,传递的是一个复制后的值。也就是说,在change方法中改变的是num和str的副本,不会影响主方法中的值。

public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3};
change(array);
System.out.println(array[0]);
}
public static void change(int[] array) {
array[0] = 10;
}
}

在上面的代码中,我们传递了一个int类型的数组array。在change方法中,我们改变了数组的第一个元素。在主方法中,我们打印出了array的第一个元素,发现它的值变成了10。

这是因为Java引用传递中,传递的是参数的引用地址,也就是说,在change方法中实际上改变的是参数的值,而不是复制后的值。

总的来说,值传递和引用传递在Java中都有应用,需要根据具体情况而定。如果我们需要改变一个对象的属性或内部状态,应该使用引用传递。如果我们只需要操作一个变量的值而不影响其他地方的值,应该使用值传递。