Avatar ·

Diferença entre == e === em Java

Olá a todos! Não consigo entender os operadores de comparação em Java. Sei que em JavaScript existe comparação estrita com ===, mas em Java esse operador parece não existir. Ao tentar escrever ===, o compilador retorna um erro.

Tentei usar == para comparar strings, mas obtive resultados inesperados. Por exemplo, este código:

String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true

Por que == retorna false se as strings são iguais? Eu esperava que == comparasse o conteúdo, como em JavaScript. Li a documentação — em Java, == compara referências de objetos, não seus valores. Para strings, é necessário usar equals().

Mas então a pergunta: existe em Java um análogo da comparação estrita === do JavaScript? Ou a única