Porównywanie stringów

Porównywanie stringów
0

Witam, dopiero uczę się javy i chciałbym uzyskać odpowiedź na pytanie, mianowicie

Kopiuj
String s1 = "foo";
String s2 = "foo";
System.out.println(s1==s2); //wypisuje true

String s3 = new String("foo");
System.out.println(s1==s3); //wypisuje false

Może mi ktoś wyjaśnić dlaczego dostaje takie wyniki?

I9
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:7
0

Wydaje mi się, w I przypadku tworzy się jeden obiekt który jest jakby rozdzielany na dwie oddzielne nazwy które mają swoją wartość. Więc porównywane referencje do obiektu są takie same.
Natomiast w drugim przypadku jest tworzony całkowicie nowy obiekt i jego referencja będzie zupełnie inna niż w przypadku s1 czy s2.
Ale prosiłbym kogoś bardziej doświadczonego i posiadającego wiekszą wiedzę o potwierdzenie lub wyprowadzenie z błędu ;)

DO
poprawnie napisałes
DC
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 godziny
  • Postów:411
1

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.