Ниже объясню как понимаю должен работать метод reverseArray: При передаче массива array в качестве аргумента в метод передается лишь ссылка на него и далее в самом методе при обращении к массиву array мы работаем НЕ с копией а именно с оригинальным array объявленным в main, если это так, то я абсолютно не понимаю почему в конце когда я перезаписываю ссылку из tmp в array данные в array не изменяются!!(точнее они изменяются но после выхода из метода array не сохраняет значения) И после завершения программы.
public class Solution {

    public static void main(String[] args) {
        int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};

        printArray(array);
        reverseArray(array);
        printArray(array);

    }

    public static void reverseArray(int[] array) {
        //напишите тут ваш код
        int[] tmp = new int[array.length];
        int count = array.length - 1;

        for(int i = 0; i < array.length; i++)
            tmp[count--] = array[i];

        array = tmp;
    }


    public static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
        }
        System.out.println();
    }
}
я получаю: 11, 22, 33, 44, 55, 66, 77, 88, 99, 11, 22, 33, 44, 55, 66, 77, 88, 99, Если из метода возвращаю массив и просто перезаписываю в Main существующий array то все работает как нужно но код проверку не проходит:
public class Solution {

    public static void main(String[] args) {
        int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};

        printArray(array);
        array = reverseArray(array);
        printArray(array);

    }

    public static int[] reverseArray(int[] array) {
        //напишите тут ваш код
        int[] tmp = new int[array.length];
        int count = array.length - 1;

        for(int i = 0; i < array.length; i++)
            tmp[count--] = array[i];

        return tmp;
    }


    public static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
        }
        System.out.println();
    }
}
я получаю: 11, 22, 33, 44, 55, 66, 77, 88, 99, 99, 88, 77, 66, 55, 44, 33, 22, 11, Вывожу массив не в main а в самом reverseArray()
public class Solution {

    public static void main(String[] args) {
        int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};

        printArray(array);
        reverseArray(array);

    }

    public static void reverseArray(int[] array) {
        //напишите тут ваш код
        int[] tmp = new int[array.length];
        int count = array.length - 1;

        for(int i = 0; i < array.length; i++)
            tmp[count--] = array[i];

        printArray(tmp);
    }


    public static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
        }
        System.out.println();
    }
}
Вывод: 11, 22, 33, 44, 55, 66, 77, 88, 99, 99, 88, 77, 66, 55, 44, 33, 22, 11,