Why string is immutable in Java?

In general, strings are used to represent the vital details like database connection URLs, username passwords etc. The immutability of strings helps to keep such details unchanged.

Similarly, String is used as an argument while loading the class. At that time change in the string may result in loading the wrong class.

If immutable automatically variables (strings) are thread safe.