Why string interning? String Interning is a common optimization in most of programming languages.
As the wiki said:
In computer science, string interning is a method of storing only one copy of each distinct string value, which must be immutable.[1] Interning strings makes some string processing tasks more time- or space-efficient at the cost of requiring more time when the string is created or interned.