Como todos sabemos, String es inmutable en Java, por lo que da lugar a dos formas de inicialización, ya que tenemos el concepto de String Pool en Java.
Formas: Inicializar strings en Java
- Inicialización directa
- Inicialización indirecta
Vía 1: Inicialización directa (Constante de string)
En este método, se creará un objeto constante de string en el área agrupada de strings que se encuentra dentro del área del montón en la memoria. Como es una constante , no podemos modificarla, es decir, la clase String es inmutable.
Ilustración:
String str = "GeeksForGeeks"; str = "geeks"; // This statement will make str // point to new String constant("geeks") // rather than modifying the previous // String constant.
Desde los medios de izquierda
String str = "GeeksForGeeks";
De los medios correctos arriba
str = "geeks";
Nota: si volvemos a escribir str = «GeeksForGeeks» en la siguiente línea, entonces primero verifica si la constante de string dada está presente en el área agrupada de strings o no. Si está presente, str lo señalará; de lo contrario, crea una nueva constante de string.
Vía 2: Inicialización de Objetos (Dinámico)
En este método, se creará un objeto String en el área del montón (no dentro del área agrupada de String como en mayúsculas). No podemos modificarlo (como en mayúsculas). También con el mismo valor, también se crea una constante de string en el área agrupada de strings, pero la variable apuntará al objeto de string solo en el área del montón.
Ilustración:
String str = new String("very"); str = "good";
Podemos sacar algunas conclusiones de ellos de la siguiente manera:
A la izquierda de los siguientes medios
String str = new String("very");
A la derecha de los siguientes medios de comunicación de la siguiente manera:
str = "good"
Ahora, esta es una asignación directa, por lo que se crea una constante de string con el valor «bueno» en el área agrupada de strings y str apuntará a eso.
Nota: si escribimos nuevamente str = new String («muy») , entonces creará un nuevo objeto con el valor «muy», en lugar de apuntar a los objetos disponibles en el área del montón con el mismo valor. Pero si escribimos str = » very” , luego apuntará al objeto constante String con valor “very”, presente en el área agrupada de String.
Métodos: comparación de strings y sus referencias
- método equals(): compara valores de string para la igualdad. El tipo de retorno es booleano. En casi todas las situaciones puedes usar useObjects.equals().
- Operador ==: Compara referencias, no valores . El tipo de retorno es booleano. == se usa en situaciones excepcionales en las que sabe que está tratando con strings internas.
- método compareTo(): compara valores lexicográficamente y devuelve un valor entero que describe si la primera string es menor, igual o mayor que la segunda string. Por ejemplo, si str1 y str2 son dos variables de string, consulte a continuación de la siguiente manera:
- str1 == str2 : devuelve 0
- str1 > str2 : devuelve un valor positivo
- str1 < str2 : devuelve un valor negativo
Nota: Los valores positivos y negativos devueltos por el método compareTo son la diferencia del primer carácter no coincidente en las dos strings.
Implementación: discutiremos cómo comparar con strings para justificar lo dicho anteriormente a través del siguiente ejemplo
Ejemplo:
Java
// Java program to Illustrate Comparison of Two Strings // Main class public class GFG { // Main driver method public static void main(String[] args) { // Custom input strings to compare String s1 = "Ram"; String s2 = "Ram"; String s5 = "Shyam"; String s3 = new String("Ram"); String s4 = new String("Ram"); // Checking whether strings are equal or not // with help of equals() method System.out.println( " Comparing strings with equals:"); System.out.println(s1.equals(s2)); System.out.println(s1.equals(s3)); System.out.println(s1.equals(s5)); String nulls1 = null; String nulls2 = null; // NullPointerException will be throws if // we try to compare nulls strings // System.out.println(nulls1.equals(nulls2)); // Comparing strings using == operator System.out.println(" Comparing strings with ==:"); System.out.println(s1 == s2); System.out.println(s1 == s3); System.out.println(s3 == s4); System.out.println(nulls1 == nulls2); // Comparing strings via compareTo() method System.out.println( " Comparing strings via compareTo() Method :"); System.out.println(s1.compareTo(s3)); System.out.println(s1.compareTo(s5)); // NullPointerException if we try to compare strings // with usage of compareTo() method // System.out.println(nulls1.compareTo(nulls2)); } }
Comparing strings with equals: true true false Comparing strings with ==: true false false true Comparing strings via compareTo() Method : 0 -1
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA