¿Por qué es falso 128 == 128 pero 127 == 127 es verdadero cuando se comparan envoltorios de enteros en Java?

class D {
    public static void main(String args[]) {
        Integer b2=128;
        Integer b3=128;
        System.out.println(b2==b3);
    }
}

Salida:

false
class D {
    public static void main(String args[]) {
        Integer b2=127;
        Integer b3=127;
        System.out.println(b2==b3);
    }
}

Salida:

true

Nota: los números entre -128 y 127 son verdaderos.

Respuestas a la pregunta(6)

Su respuesta a la pregunta