Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Pool de Strings, Método equals() | String
Noções Básicas de Java
course content

Conteúdo do Curso

Noções Básicas de Java

Noções Básicas de Java

1. Primeiros Passos
2. Tipos básicos, operações
3. Loops
4. Arrays
5. String

bookPool de Strings, Método equals()

Método equals()

Este capítulo oferece uma visão geral do método equals(). Este método é utilizado para comparar objetos e é comumente usado com objetos String. Vamos examinar um exemplo de criação de duas variáveis string idênticas e compará-las usando "==":

java

Main

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }

Na resposta, recebemos "false", mas por quê? Os valores das duas variáveis de string são os mesmos e iguais a "string". Isso acontece porque "==" compara as referências dos objetos na memória, e não os valores reais. Nossos objetos estão fora do pool de strings.

Pool de Strings

O que é o pool de strings? É uma área na memória heap que é alocada ao criar objetos string. Se criarmos um objeto string com o valor "string" e depois criarmos outro objeto String com o mesmo valor, ambos os objetos apontarão para o mesmo objeto na memória, que está localizado no pool de strings.

Então, por que recebemos "false" no nosso caso? É porque contornamos o pool de strings criando objetos com a sintaxe String first = new String("string");. Quando criamos um objeto String usando uma sintaxe diferente, como String first = "string";, ele será colocado no pool de strings.

Vamos considerar um exemplo de código:

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }

Vamos considerar um diagrama explicando como isso funciona e quais objetos estão no String Pool.

Como comparamos os valores das strings no Pool de Strings e aquelas que estão fora dele? Para isso, o Java fornece o método equals, que compara os valores dos nossos objetos String em vez de suas referências. Vamos considerar um exemplo de código onde comparamos strings usando o método equals em vez de ==.

java

Main

copy
1234567891011
package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }

Agora podemos ver que temos a comparação correta.

Nota

Use o método equals() em vez de == ao trabalhar com String.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 7
some-alt