有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组传递给Java中的方法这里传递什么?价值还是参考?

当我将一个对象引用(数组是对象)传递给一个方法时,值就被传递了,对吗

在以下代码中,初始值为:333。方法传递后,值会发生更改。为什么?在这种情况下,引用传递的是值吗

阵列是“特殊情况”吗

public static void main(String[] args) {
    int[] myArray = { 333 };
    valueOrRef(myArray);            // Value or Reference?
    System.out.println(myArray[0]); // 777 (changed)
}

public static void valueOrRef(int[] myArgument) {
    myArgument[0] = 777;
}

另一种方法:(逻辑“按值传递”):

public static void main(String[] args) {
    int[] myArray = { 333 };
    valueOrRef(myArray[0]);         // Value or Reference?
    System.out.println(myArray[0]); // 333 (after method still unchanged)
}

public static void valueOrRef(int myArray2) {
    myArray2 *= 2;
}

共 (1) 个答案

  1. # 1 楼答案

    值总是传递的,但请记住,对于数组,值实际上是对数组的引用,而不是数组本身

    第一个valueOrRef方法会更改myArgument指向的数组的内容,这就是为什么调用该方法后会看到对数组的影响