English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Sin parámetros
Devuelve la representación normalizada de la cadena
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.
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.