Java传参的值能不能被改变

关于#java#的问题: 为什么下面这段代码的arr的输出值还是1234567没有被改变过,不是说传参的值是引用数据类型都是可以改变的吗
public static void rotate(int[] nums, int k) {

    while (k > 0) {
        int[] temp = new int[nums.length];
        temp[0] = nums[nums.length - 1];
        for (int i = 0; i < nums.length - 1; i++) {
            temp[i+1] = nums[i];
        }
        k--;
        nums = temp; 
    }

}
public static void main(String[] args) {
    int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7};
    rotate(arr, 3);
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }

传递的参数nums 相当于是arr 引用的复制,大家指向的东西(假设叫A)是相同的,但是两者本身并不是同一个对象,你把temp赋值给nums ,也只是对nums的变化,使得nums指向变了(假设指向了B),对A又没有造成影响,那原来的arr还是指向A,自然还是原来的数据

java跟C不一样,必须要接收产生新的数组,这样你的顺序就变了。