【发布时间】:2014-08-25 13:27:24
【问题描述】:
我知道 Java 总是按值传递,但我不明白为什么会这样:
public static void swap(int[] arr, int i, int j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void main(String[] args)
{
int[] arr = {3, 4, 5, 6};
swap(arr, 1, 3);
// arr becomes {3, 6, 5, 4}
}
这不起作用:
public static void swap(int[] arr, int[] arr2)
{
int[] tmp = arr;
arr = arr2;
arr2 = tmp;
}
public static void main(String[] args)
{
int[] arr = {3, 4, 5, 6};
int[] arr2 = {1, 2, 5, 6};
swap(arr, arr2);
}
为什么?
【问题讨论】:
-
你需要了解引用。
-
Java 按值传递引用。
标签: java pass-by-value