Większość tutaj odpowiedzi są poprawne (nie jest to obsługiwane przez kompilator, + przekształca się .append() ...)
Chciałem dodać, że każdy powinien rzucić okiem na kod źródłowy do String i dołączyć w pewnym momencie, to całkiem imponujące.
Uważam, że przyszedł, aby coś takiego:
"a"+"b"+"c"
=
new String().append("a").append("b").append("c")
Ale wtedy niektóre magia dzieje. Ten zamienia się:
- Utwórz tablicę ciągów o długości 3
- skopiować do pierwszej pozycji.
- kopia b do drugiego
- kopii C do trzeciego
Podczas gdy większość ludzi wierzy, że będzie tworzyć „AB”, a następnie wyrzucić, gdy tworzy „ABC”. Rozumie, że jest przykuty i manipuluje.
Istnieje również sztuczka, w której jeśli masz ciąg "abc" i pytasz o podciąg, który okazuje się być "bc", mogą one współdzielić tę samą bazową tablicę. Zauważysz, że istnieje pozycja początkowa, pozycja końcowa i flaga "udostępniona".
W rzeczywistości, jeśli nie jest wspólna, to możliwe jest, aby przedłużyć długość łańcucha i kopiować innych w.
Teraz jestem po prostu mylące. Przeczytaj kod źródłowy - jest całkiem fajny.
'StringBuilder' powinien być preferowany tam, gdzie synchronizacja nie jest problemem. – gpampara
@gpampara Kompilator wie, jak używać StringBuilder. StringBuffer był używany w starych wydaniach przed wprowadzeniem StringBuilder. –