1、可以缓存hash值
因为String的hash值经常被使用,例如String用作HashMap的key。不可变的特性可以使得hash值也不可变,因此只需要进行一次计算。
2、String Pool的需要
字符串常量池,如果一个String对象已经被创建过了,那么会从String Pool中取得引用。只有String是不可变的,才可能使用String Pool。
3、安全性
String经常作为参数,String不可变性可以保证参数不可变。
4、线程安全
String不可变性天生具备线程安全,可以在多个线程中安全地使用。