¿Cuál es el concepto de String Pool en Java?



String Pool en Java es un conjunto de cadenas almacenadas en Java Heap Memory. Este tutorial le ayudará con un enfoque detallado de Java String Pool con ejemplos.

¿Has oído hablar del término '¿Grupo de cadenas en Java?' Bueno, si no, ha aterrizado en el lugar correcto. String Pool en Java es un conjunto de cadenas que se almacena en Memoria de montón. Profundicemos un poco más y comprendamos este concepto de grupo de cadenas de Java en detalle.

En este artículo se analizarán los siguientes consejos:





¡Vamos a empezar!

En primer lugar, ¡comprendamos cómo se crea exactamente un objeto de cadena!



¿Cómo crear una cadena?

Para crear un objeto String en Java, hay dos formas:

cómo inicializar una clase en Python
  • Usando el nuevo operador. Por ejemplo,
Cadena s1 = nueva cadena ('Joey')
  • Usar una expresión constante o literal de cadena. Por ejemplo,
Cadena s1 = 'Joey' (cadena literal) o Cadena s1 = 'Joe' + 'y' (expresión constante de cadena)

Ahora, ¿qué es este grupo de cadenas del que estoy hablando y cómo se relaciona la creación de una cadena en Java con esto? ¡Déjame reducir el desorden!

¿Qué es String Pool en Java?

String Pool es un área de almacenamiento en el montón de Java.



Asignación de cadenas, como todas asignación de objetos , resulta ser un asunto costoso tanto en el caso del tiempo como de la memoria. La JVM realiza algunos pasos al inicializar cadenas literales para aumentar el rendimiento y reducir la sobrecarga de memoria. Para disminuir el número de objetos String creados en la JVM, la clase String mantiene un grupo de cadenas.

Cada vez que se crea un literal de cadena, el JVM comprueba primero el grupo literal de cadenas. Si la cadena ya existe en el grupo de cadenas, se devuelve una referencia a la instancia agrupada. Si la cadena no existe en el grupo, se inicializa un nuevo objeto String y se coloca en el grupo.

Después de aprender el concepto teóricamente, déjame decirte cómo funciona un grupo de cadenas en Java paso a paso con la ayuda de instancias simples.

¿Cómo funciona el grupo de cadenas en Java?

Cuando crea una nueva cadena como esta:

Cadena s1 = 'Rachel'

JVM comprueba automáticamente si existe el mismo valor en el grupo de constantes de cadena o no.

  • en caso afirmativo, ocupa el valor ya existente.
  • Si no, crea una nueva cadena por sí mismo y la agrega al grupo de cadenas.

Si desea detener este comportamiento, cree una cadena con el operador nuevo:

Cadena s1 = nueva cadena ('Rachel')

Ahora, si está dispuesto a agregar esta cadena al , Java le proporciona un método llamado, método intern () que puede llamar al método nativo intern () como este:

S1.intern ()

Ahora, le mostraré la implementación y el funcionamiento del grupo de cadenas a través de un ejemplo.

Pero antes de eso, ¡un pequeño recordatorio!

Como sabe, si está comparando 2 objetos usando el operador ==, compara direcciones en la memoria.

Así que compararemos las cadenas usando == para estar completamente seguros de que es el mismo objeto o no.

Ahora, vayamos a nuestro proceso de implementación.

Grupo de cadenas en Java: diagrama de flujo

Piscina de cuerdas - Edureka

Ahora captemos lo que sucede aquí paso a paso:

cómo cambiar un doble a un int en java
  • La clase se carga cuando se invoca.
  • JVM busca todos los literales de cadena en el programa
  • Primero, encuentra la variable s1 que se refiere al literal 'Apple' y se crea en la memoria
  • A continuación, se coloca una referencia para el literal 'Apple' en la memoria del grupo de constantes de cadena.
  • Luego encuentra otra variable s2 que se refiere a la misma cadena literal 'Mango'.
  • Luego encuentra otra variable s3 que se refiere al literal 'Apple'
  • Ahora que JVM ya ha encontrado un literal de cadena 'Apple', las variables s1 y s3 ​​se referirán al mismo objeto, es decir, 'Apple'.

Programa Java para String Pool

public class StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). intern ( ) System.out.println (s1 == s2) // verdadero System.out.println (s1 == s3) // falso System.out.println (s1 == s4) // verdadero}}

Salida:

Cierto
Falso
Cierto

En el ejemplo anterior, puede ver claramente el uso de la inicialización de cadenas en las tres formas, es decir,

String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). Intern ()

El funcionamiento interno del programa quizás debería quedar claro ahora.

Con esto, he llegado hacia el final de mi blog. Espero que los contenidos aquí elaborados le hayan ayudado a ampliar su base de conocimientos. Seguiremos buceando en el mundo de Java. ¡Manténganse al tanto!

Revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación y certificación Java J2EE y SOA de Edureka está diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Primavera .

Tienes una pregunta para nosotros? Por favor, menciónelo en la sección de comentarios de este blog de “String Pool en Java” y nos comunicaremos con usted lo antes posible.