Hirdetés

Új hozzászólás Aktív témák

  • Drizzt
    nagyúr

    Értem, de az a-t újra létrehoztam. Az már más példány más címmel?
    Az a2 mégis módosult.

    Ja igen. A helyzet az, hogy az a2 nem módosulhatott. Valami más miatt tűnik úgy, mintha ez történt volna. Hogy néz ki az A class? Nem véletlen valami static field-et állít át a konstruktora? Mi alapján gondolod, hogy a1, meg a2 is "hi"?

    Itt egy példa, hogy ennek a fajta értékadásnak az a2(, a példában s2) által mutatott címet nem szabadna mósodítania.

    @Test
    void assignment() {
    String s1 = new String("Hello");
    String s2 = s1;
    s1 = new String("hi");
    System.out.println(s1);
    System.out.println(s2);
    System.out.println("s1 default hashcode: " + System.identityHashCode(s1));
    System.out.println("s2 default hashcode: " + System.identityHashCode(s2));
    }

    Output:
    hi
    Hello
    s1 default hashcode: 1366025231
    s2 default hashcode: 1427889191

Új hozzászólás Aktív témák