Java值传递和引用传递

在Java中,有值传递(Pass-by-Value)和引用传递(Pass-by-Reference)两种参数传递方式。

  1. 值传递(Pass-by-Value):当使用值传递方式时,方法将参数的副本传递给调用方法。这意味着,在方法内部对参数进行修改不会影响原始变量的值。Java中的基本数据类型(如int、float、boolean等)都是通过值传递进行参数传递的。
    Java值传递和引用传递_第1张图片

例如:

public static void modifyValue(int value) {
value = 10;
}

public static void main(String[] args) {
    int number = 5;
    modifyValue(number);
    System.out.println(number); // 输出为 5,原始变量没有被修改
}
  1. 引用传递(Pass-by-Reference):当使用引用传递方式时,方法将参数的引用传递给调用方法。这意味着,在方法内部对参数进行修改会影响原始变量的值。Java中的对象、数组以及非基本类型的变量都是通过引用传递进行参数传递的。

Java值传递和引用传递_第2张图片

例如:

public static void modifyArray(int[] array) {
    array[0] = 10;
}

public static void main(String[] args) {
    int[] numbers = { 1, 2, 3 };
    modifyArray(numbers);
    System.out.println(numbers[0]); // 输出为 10,原始数组被修改
}

需要注意的是,在Java中并没有真正的引用传递机制,而是通过将引用的副本传递给方法来实现类似的效果。因此,虽然我们常说Java中有引用传递,但实际上是对引用的值进行了传递,而不是传递引用本身。
总结起来,Java中的基本数据类型采用的是值传递,而对象和数组则是通过引用传递(传递引用的副本)方式进行参数传递。

你可能感兴趣的:(java基础,Java面试总结,java)