English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Arreglo

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java Orientado a Objetos (III)

Manejo de excepciones de Java

Java Lista (List)

Java Cola (Queue)

Conjunto de Mapa de Java

Conjunto de Java

Java Entrada/Salida (I/)

Reader de Java/Writer

Otras temáticas de Java

Uso y ejemplo del método intern() de String en Java

Métodos de Java String(cadena)

El método intern() de String en Java devuelve la representación normalizada del objeto de cadena.

La sintaxis del método intern() de la cadena es:

string.intern()

Aquí, string es un objeto de la clase String.

Parámetros de intern()

  • Sin parámetros

Valor de retorno de intern()

  • Devuelve la representación normalizada de la cadena

¿Qué es el internamiento de String en Java?

La inyección de cadenas asegura que todas las cadenas con el mismo contenido utilicen la misma memoria.

Supongamos que tenemos dos cadenas:

String str1 = "xyz";
String str2 = "xyz";

Dado que ambos str1y str2tienen el mismo contenido, por lo que estas dos cadenas compartirán la misma memoria. Java inserta automáticamente cadenas literales.

Sin embargo, si se crea una cadena utilizando la palabra clave new, estas cadenas no compartirán la misma memoria. Por ejemplo,

class Main {
  public static void main(String[] args) {
    String str1 = new String("xyz");
    String str2 = new String("xyz");
    System.out.println(str1 == str2); // false
  }
}

Se puede ver en este ejemplo que ambos str1y str2tienen el mismo contenido. Pero, no son iguales porque no comparten la misma memoria.

En este caso, puedes usar manualmente el método intern() para que los strings con el mismo contenido utilicen la misma memoria.

Ejemplo: Java String intern()

class Main {
  public static void main(String[] args) {
    String str1 = new String("xyz");
    String str2 = new String("xyz");
    //str1y str2no comparten el mismo pool de memoria
    System.out.println(str1 == str2); // false
    //utiliza el método intern()
    //Ahora, str1y str2comparten el mismo pool de memoria
    str1 = str1.intern();
    str2 = str2.intern();
    System.out.println(str1 == str2); // true
  }
}

Como puedes ver, str1y str2tienen el mismo contenido, pero no son iguales al principio.

Luego, utilizamos el método intern() para que str1y str2utiliza el mismo pool de memoria. Después de intern(), str1y str2iguales.

Métodos de Java String(cadena)