Olá pessoal!
Estou testando os operadores '==' e 'equals()' e percebi que ele reage de forma diferente.
Integer ina = new Integer(1);
Integer ine = new Integer(1);
int a = 1;
int b = 1;
String s1 = new String("GEEKS");
String s2 = new String("GEEKS");
System.out.println();
System.out.println(ina == ine); //== compara o nome do atributo
System.out.println(s1 == s2);
System.out.println(a == b);
System.out.println();
System.out.println(ina.equals(ine)); //equals compara o valor do atributo
System.out.println(s1.equals(s2));
Se rodarem este código, o resultado será:
false
false
true
true
true
O operador '==' nos traz resultado oposto quando usado em dados com tipos primitivos como int.
A dúvida é: como funciona o operador '==' para tipos primitivos e classes como Integer, String?
Obrigado