A questão é se vc fizer o seguinte:
public static void main(String[] args) {
Integer i = 127;
Integer y = 127;
if (i == y) {
System.out.println("iguais");
}
}
A saida é iguais…
porem se fizer isto:
public static void main(String[] args) {
Integer i = 128;
Integer y = 128;
if (i == y) {
System.out.println("iguais");
}
}
Ele não vai entrar no if…
a regra é para numeros que não excedem a 127 bytes o == pode ser usado porem para numeros que exedem a isto tem que se usar equals… porque disto???
seria isto um bug na api dos wrapers??? não vejo nenhuma razão para colocarem algo deste tipo…
e o pior isto é questão de certificação… se deparar com algo assim e errar na prova é uma puta sacanagem…