Comparando matrices enteras en Java. ¿Por qué no funciona ==?

Estoy aprendiendo Java y solo se me ocurrió este hecho sutil sobre el lenguaje: si declaro dos Arreglos enteros con los mismos elementos y los comparo usando== el resultado esfalse. ¿Por qué pasó esto? ¿No debería la comparación evaluartrue?

public class Why {

    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        int[] b = {1, 2, 3};

        System.out.println(a == b);
    }

}

¡Gracias por adelantado!

Respuestas a la pregunta(3)

Su respuesta a la pregunta