Aqui estou eu novamente para pedir o auxílio de vocês.
É o seguinte, variáveis de referência guardam referências, correto? E por causa disso não podemos comparar variáveis de referência atrás do operador == , ao invés disso devemos usar o .equals()
Então sabem me explicar o motivo de, por exemplo:
Integer n1 = 2;
Integer n2 = 2;
n1 == n2
Por que o resultado é true? Não deveria ser false, já que está comparando as referências?
Isso é por causa do Autoboxing. Na comparação, o java faz a conversão automática entre os tipos primitivos e seus wrappers (int = Integer, long = Long, etc.)