Arrays... é fácil se pensar um pouco

class Test
{
public static void main(String[ ] args)
{
int[] a = { 1, 2, 3, 4 };
int[] b = { 2, 3, 1, 0 };
System.out.println( a [ (a = b)[3] ] );
}
}

a = b // array a agora contém o valor de b

b[3] == a[3] == 0

a[0] -> 2

humm…

não foi dessa vez…

lembre como a atribuição é feita…

a recebe b
assim b[3] = 0

e por fim

a[0] = 1

o a[] de fora ainda mantem a mesma estrutura…