Você está aqui: Java ::: Pacote java.lang ::: String |
Qual a diferença entre a comparação de strings usando o operador "==" e o método equals() da classe String?Quantidade de visualizações: 3013 vezes |
Uma das dúvidas mais frequentes entre os estudantes de Java é a diferença entre a comparação de strings usando o operador "==" e o método equals() da classe String. Quando se trata de objetos, o operador "==" verifica se as duas variáveis (referências) apontam para o mesmo objeto String na memória. O método equals(), por sua vez, compara o conteúdo dos dois objetos apontados por duas variáveis. Veja o exemplo a seguir:package estudos; public class Estudos{ public static void main(String[] args) { String s1 = "Java"; String s2 = "Java"; String s3 = new String("Java"); // vamos verificar se s1 e s2 são referências para o mesmo objeto String if(s1 == s2){ System.out.println("s1 e s2 apontam para o mesmo objeto String"); } else{ System.out.println("s1 e s2 não apontam para o mesmo objeto String"); } // vamos verificar se s1 e s3 são referências para o mesmo objeto String if(s1 == s3){ System.out.println("s1 e s3 apontam para o mesmo objeto String"); Ao executarmos este código nós teremos o seguinte resultado: s1 e s2 apontam para o mesmo objeto String s1 e s3 não apontam para o mesmo objeto String Neste exemplo nós declaramos e instanciamos uma variável do tipo String chamada s1 e com o conteúdo "Java". Ao declararmos a variável s2 com o mesmo conteúdo, o compilador descobre que o conteúdo das duas variáveis é o mesmo e "aponta" a segunda variável para o conteúdo da primeira. Isso faz com que as duas variáveis s1 e s2 apontem para o mesmo objeto e a comparação s1 == s2 retorne true. Já a variável s3 aponta para um novo objeto String. Desta vez o compilador não aproveita o objeto já criado. Ele cria um novo objeto String fazendo com que a comparação s1 == s3 retorne false. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
C++ - Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cpp |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |