A string is an ordered sequence of characters, usually stored as bytes that encode text. In many languages it behaves like a read-only array of characters that you can index and iterate over.
Immutability means that once a string is created, its contents never change. Operations that look like edits, such as replacing a character, actually build a brand new string and leave the original untouched.
Languages make this choice for safety and speed. Immutable strings can be shared freely between threads with no locking, and their hash code can be computed once and reused. The tradeoff is that heavy in-place editing wastes work creating copies. That is why building text in a loop should use a dedicated builder instead.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.