Comparando o objeto primitivo com o wrapper com o comportamento == inexplicável
Eu tenho um pedaço de código que eu preciso entender:
public static void main(String[] args) {
Character c = new Character('a');
Character cy = new Character('a');
char cx = 'a';
System.out.println(c == cx);
System.out.println(cx == cy);
System.out.println(c == cy);
}
Resultado:
true
true
false
Não consigo entender por que apenas a terceira declaração está falhando.
EDIT: Esta pergunta é diferente da.equals
vs==
pergunta como esta sobre comparação primitiva versus comparação de objetos.