Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

240
Vistas
¿Por qué la deduplicación de cadenas cuando tenemos un grupo de cadenas?

Desduplicación de cadenas :

Las cadenas consumen mucha memoria en cualquier aplicación. Cada vez que el recolector de elementos no utilizados visita objetos de cadena, toma nota de las matrices de caracteres. Toma su valor hash y lo almacena junto con una referencia débil a la matriz. Tan pronto como encuentra otro String que tiene el mismo código hash, los compara carácter por carácter. Si también coinciden, se modificará un String y apuntará a la matriz de caracteres del segundo String. Ya no se hace referencia a la primera matriz de caracteres y se puede recolectar basura.

Grupo de cuerdas:

Todas las cadenas utilizadas por el programa Java se almacenan aquí. Si dos variables se inicializan con el mismo valor de cadena. No se crean dos cadenas en la memoria, solo habrá una copia almacenada en la memoria y ambas apuntarán a la misma ubicación de memoria.

Entonces, Java ya se encarga de no crear cadenas duplicadas en el montón al verificar si la cadena existe en el grupo de cadenas. Entonces, ¿cuál es el propósito de la deduplicación de cadenas?

Si hay un código de la siguiente manera

 String myString_1 = new String("Hello World"); String myString_2 = new String("Hello World");

se crean dos cadenas en la memoria aunque sean iguales. No puedo pensar en ningún otro escenario que no sea este en el que la deduplicación de cadenas sea útil. Obviamente debo estar perdiendo algo. ¿Qué me estoy perdiendo?

Gracias de antemano

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El conjunto de cadenas se aplica solo a las cadenas que se le agregan explícitamente o que se usan como constantes en la aplicación. No se aplica a cadenas creadas dinámicamente durante la vigencia de la aplicación. Sin embargo, la deduplicación de cadenas se aplica a todas las cadenas.

over 4 years ago · Santiago Trujillo Denunciar

0

Tiempo de compilación vs tiempo de ejecución

El grupo de cadenas se refiere a las constantes de cadena que se conocen en tiempo de compilación.

La deduplicación de cadenas lo ayudaría si recupera (o construye) la misma cadena un millón de veces en tiempo de ejecución, por ejemplo, leyéndola desde un archivo, una solicitud HTTP o de cualquier otra forma.

over 4 years ago · Santiago Trujillo Denunciar

0

La deduplicación de cadenas disfruta del nivel adicional de direccionamiento indirecto integrado en String :

  • Con un grupo de cadenas, está limitado a devolver el mismo objeto para dos cadenas idénticas
  • La deduplicación de cadenas le permite tener varios objetos String distintos que comparten el mismo contenido .

Esto se traduce en la eliminación de una limitación de desduplicación en la creación: su aplicación podría seguir creando nuevos objetos String con contenido idéntico mientras usa muy poca memoria adicional, porque el contenido de las cadenas se compartiría. Este proceso se puede realizar en un horario completamente independiente, por ejemplo, en segundo plano, mientras que su aplicación no necesita muchos de los recursos de la CPU. Dado que la identidad del objeto String no cambia, la desduplicación se puede ocultar por completo desde su aplicación.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda