Java 中的数组拥有特殊的地位,它既不是原始类型,也不是成熟的对象。这种独特的性质提出了一个问题:Java 数组是按值传递还是按引用传递?
Java 中的所有内容都是按值传递。 这包括数组。当您将数组传递给方法时,实际传递的是对该数组的引用,而不是数组本身。
因此,通过该引用对数组内容进行的任何修改都会影响原始数组。但是,更改引用以指向新数组不会影响原始方法中保存的引用。
考虑以下 Java 代码片段:
public class ArrayPassingDemo { public static void changeContent(int[] arr) { arr[0] = 10; // Changes the content of the array in main() } public static void changeRef(int[] arr) { arr = new int[2]; // Does not change the array in main() arr[0] = 15; } public static void main(String[] args) { int[] arr = new int[2]; arr[0] = 4; arr[1] = 5; changeContent(arr); System.out.println(arr[0]); // Will print 10 changeRef(arr); System.out.println(arr[0]); // Will still print 10 (since the reference change isn't reflected) } }
在此示例中:
此行为强调 Java 中的数组是按值传递的,即使传递操作涉及它们的引用。
以上是Java 数组:按值传递还是按引用传递?的详细内容。更多信息请关注PHP中文网其他相关文章!