Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Pool de Strings, Método Equals() | String
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Fundamentos de Java

bookPool de Strings, Método Equals()

O método equals()

Este método é utilizado para comparar objetos e é comumente usado com objetos do tipo String. Vamos analisar um exemplo de criação de duas variáveis de string idênticas e compará-las usando ==:

Main.java

Main.java

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); } }

O resultado é false porque == compara referências de objetos, e não seus valores reais. Mesmo que ambas as strings contenham "string", elas são objetos diferentes na memória e são criadas fora do String pool.

String pool

O String Pool é uma parte da memória heap onde literais de string são armazenados. Quando você cria strings com o mesmo valor usando literais, elas referenciam o mesmo objeto na memória.

Então, por que obtivemos false? Porque ignoramos o string pool ao usar new String("string"), o que cria um novo objeto na memória. Ao usar String first = "string";, a string é colocada no string pool e pode ser compartilhada.

Vamos analisar um exemplo de código:

Main.java

Main.java

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 analisar um diagrama que explica como funciona e quais objetos estão no String Pool.

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

Main.java

Main.java

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 é possível observar que a comparação está correta.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookPool de Strings, Método Equals()

Deslize para mostrar o menu

O método equals()

Este método é utilizado para comparar objetos e é comumente usado com objetos do tipo String. Vamos analisar um exemplo de criação de duas variáveis de string idênticas e compará-las usando ==:

Main.java

Main.java

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); } }

O resultado é false porque == compara referências de objetos, e não seus valores reais. Mesmo que ambas as strings contenham "string", elas são objetos diferentes na memória e são criadas fora do String pool.

String pool

O String Pool é uma parte da memória heap onde literais de string são armazenados. Quando você cria strings com o mesmo valor usando literais, elas referenciam o mesmo objeto na memória.

Então, por que obtivemos false? Porque ignoramos o string pool ao usar new String("string"), o que cria um novo objeto na memória. Ao usar String first = "string";, a string é colocada no string pool e pode ser compartilhada.

Vamos analisar um exemplo de código:

Main.java

Main.java

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 analisar um diagrama que explica como funciona e quais objetos estão no String Pool.

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

Main.java

Main.java

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 é possível observar que a comparação está correta.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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