Dlaczego tak
Java przekazuje argumenty zawsze przez wartość. Parametr x to kopia liczby b, więc x = 9 nie zmienia b, które nadal wynosi 1. Parametr t to kopia referencji do tej samej tablicy, więc t[0] = 9 zmienia tablicę a. Przypisanie t = new int[] {7} zmienia tylko lokalną kopię referencji i nie wpływa na a, dlatego odpowiedź 7 1 jest błędna, podobnie jak 9 9, które zakłada przekazanie liczby przez referencję.