java cadenas inmutable, sino que el código no muestra que

Ashish Kaul:

Estaba aprendiendo conceptos de cadena, por lo que escribió un código, prevé una producción diferente, pero tiene algo muy inesperado.

class stringmute
{
    public static void main(String[] args)
    {
        String s1="Hello "; //string one.
        System.out.println("Str1:"+s1);
        String s2= s1+"world"; //New String.
        System.out.println("Str2="+s2);
        s1=s1+"World!!"; //This should produce only Hello right?
        System.out.println("Str1 modified:"+s1);

    }
}

cuando ejecuto el código anterior me sale la salida como:

Str1:Hello 
Str2=Hello world
Str1 modified:Hello World!!

Si he hecho algo mal por favor hágamelo saber. Dado que las cadenas son inmutables, lo que implica que deberíamos obtener la salida de la "Str1 Modificado" como "HOLA" en lugar de "¡Hola mundo !!".

Emre Fiscal:

Cuando se asigna como s1:

s1=s1+"World!!";

Nueva cadena creada en el grupo de cadena JVM y se asigna a S1.

Por lo que de valor se convirtió en "Hola mundo !!"

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=180171&siteId=1
Recomendado
Clasificación