One reason why immutable strings are good is because it makes Unicode support easier. Modern Unicode can no longer effectively integrate into a fixed-size data cell that kills the one-to-one correspondence between the string index and the memory address, which allows them to use mutable strings.
( ASCII EBCDIC...), , ( C).
Unicode , - 16 , Java String ( StringBuffer s). , Unicode 16 , .
Unicode , - 16 , , Basic Multilingual Plane - , . Unicode, (32-?) .
O (1) - , , N'th. : .
, . , , , . , , .
, . , ( ) O (N ^ 2), N ...
- StringBuffer ConcatBuffer, . , , () .
, , , . " rope" "", , , , , , , , !
, "" O (log N) , " " , O (1) .