String es una secuencia de caracteres, que se usa ampliamente en la programación Java. En el lenguaje de programación Java, las strings son objetos. En Java, la máquina virtual solo puede crear una sola instancia de string en la memoria, si usamos la misma string en otras declaraciones de variables de string. Consideremos las ilustraciones en aras de la comprensión, que es la siguiente:
Ilustración 1:
String string1 = "GeeksForGeeks"; String string2 = "GeeksForGeeks";
En el ejemplo anterior, la máquina virtual Java creará solo una instancia de «GeeksForGeeks» en la memoria. Hay dos variables diferentes, inicializadas a la string «GeeksForGeeks» apuntará a la misma instancia de string en la memoria. La siguiente figura muestra un ejemplo con mayor precisión: –
El literal de string se convierte así en una constante o singleton de facto. Más precisamente en Java, los objetos que representan los literales de strings de Java se obtienen de un conjunto de strings constantes que una máquina virtual de Java mantiene internamente. Esto significa que incluso las clases de diferentes proyectos compilados por separado, pero que se usan en la misma aplicación, pueden compartir objetos String constantes. El intercambio ocurre en tiempo de ejecución y, por lo tanto, no es una función de tiempo de compilación.
Ilustración 2: si queremos que esas dos variables de string apunten a objetos de string separados, entonces usamos el nuevo operador de la siguiente manera:
String string1 = new String("GeeksForGeeks"); String string2 = new String("GeeksForGeeks");
El código anterior creará dos objetos de memoria diferentes en la memoria para representarlos incluso si el valor de las dos strings es el mismo. La siguiente imagen muestra el uso del nuevo operador:
Nota: En la imagen de arriba, se muestra claramente que se crean dos bloques de memoria diferentes para dos strings diferentes que contienen la misma string de valor.
Ejemplo 1:
Java
// Java Program to Illustrate String Literals as // Constants or Singletons // Main class // StringSingleton public class GFG { // Main driver method public static void main(String[] args) { // Strings String string1 = "GeeksForGeeks"; String string2 = "GeeksForGeeks"; String string3 = new String("GeeksForGeeks"); String string4 = new String("GeeksForGeeks"); // Checking if two string are same or not if (string1 == string2) { // Returns true System.out.println("True"); } else { // Returns false System.out.println("False"); } // Again checking if two string are same or not if (string1 == string3) { // Returns false System.out.println("True"); } else { System.out.println("False"); } // Again checking if two string are same or not if (string4 == string3) { // Returns false System.out.println("True"); } else { System.out.println("False"); } } }
True False False
En el programa anterior, se crearán un total de 3 objetos. Ahora, si queremos comparar el contenido de 2 strings, podemos usar el método de igualdad, y el operador ‘==’ se puede usar para comparar si las referencias de dos strings son iguales o no.
Ejemplo 2:
Java
// Java Program to Illustrate String Literals as // Constants or Singletons // Main class // StringSingleton public class GFG { // Main driver method public static void main(String[] args) { // Strings String string1 = "GeeksForGeeks"; String string3 = new String("GeeksForGeeks"); // Print and display statements // Displays true System.out.println(string1.equals(string3)); // Displays false System.out.println(string1 == string3); } }
true false
Publicación traducida automáticamente
Artículo escrito por shantanujain18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA