[Soci SLIP] Re: [java] stringhe uguali?
Enrico Agliotti
enrico.agliotti a gmail.com
Lun 2 Apr 2012 13:07:03 CEST
mi rispondo da solo.
Le due espressioni sono equivalenti ma due stringhe letterali uguali
sono create da java come un oggetto solo e quindi i due reference a e
b puntano allo stesso oggetto e sono di fatto uguali, però non bisogna
fidarsi.
Tant'è vero che questo non funziona di nuovo più:
class TestString {
public static void main(String[] args) {
String a1 = "ci";
String a2 = "ao";
String a = a1 + a2;
String b = "ciao";
if (a==b) {
System.out.println("uguali");
}
}
}
Il 02 aprile 2012 12:41, Enrico Agliotti <enrico.agliotti a gmail.com> ha scritto:
> volevo chiederlo privatamente a Lucio, ma non è poi così ot
> (però è solo per chi si interessa a Java)
>
>
> io pensavo che queste due espressioni fossero equivalenti:
> String a = "ciao";
> String a = new String("ciao");
>
>
> perché allora, in questo caso, come mi aspettavo, non funziona
>
> class TestString {
> public static void main(String[] args) {
> String a = new String("ciao");
> String b = new String("ciao");
> if (a==b) {
> System.out.println("uguali");
> }
> }
> }
>
> ma in questo, sorprendentemente, si?
>
> class TestString {
> public static void main(String[] args) {
> String a = "ciao";
> String b = "ciao";
> if (a==b) {
> System.out.println("uguali");
> }
> }
> }
>
>
> --
> Enrico Agliotti
> cell. +39-328-0517312
> tel. con segreteria: +39-011-23415553
--
Enrico Agliotti
cell. +39-328-0517312
tel. con segreteria: +39-011-23415553
Maggiori informazioni sulla lista
Soci