Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Pool de Cadenas y el Método equals() | String
Fundamentos de Java

Pool de Cadenas y el Método equals()

Desliza para mostrar el menú

El método equals()

Este método se utiliza para comparar objetos y es comúnmente usado con objetos String. Veamos un ejemplo de cómo crear dos variables de cadena idénticas y compararlas usando ==:

Main.java

Main.java

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

El resultado es false porque == compara las referencias de los objetos, no sus valores reales. Aunque ambas cadenas contienen "string", son objetos diferentes en memoria y se crean fuera del String pool.

String pool

El String Pool es una parte de la memoria heap donde se almacenan los literales de cadena. Cuando creas cadenas con el mismo valor usando literales, hacen referencia al mismo objeto en memoria.

¿Entonces por qué obtuvimos false? Porque evitamos el string pool al usar new String("string"), lo que crea un nuevo objeto en memoria. Al usar String first = "string";, la cadena se coloca en el string pool y puede ser compartida.

Veamos un ejemplo de código:

Main.java

Main.java

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

Consideremos un diagrama que explica cómo funciona y qué objetos están en el String Pool.

¿Cómo comparamos los valores de las cadenas en el String Pool y aquellas fuera de él? Para este propósito, Java proporciona el método equals, que compara los valores de nuestros objetos String en lugar de sus referencias. Consideremos un ejemplo de código donde comparamos cadenas usando el método equals en lugar de ==.

Main.java

Main.java

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

Ahora podemos ver que tenemos la comparación correcta.

Note
Nota

Utilizar el método equals() en lugar de == al trabajar con String.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 7

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 5. Capítulo 7
some-alt