1、字符串如果在字符串常量池,两个对象指向它,一个对象改变值,则另一个对象也会改变,不符合之前设计常量池的意义。
2、不可变的字符串可以用作hashmap的key
3、可以缓存hashcode,每次修改字符串值则需要变化其hashcode,降低效率。
4、可以保证线程安全
java的String为什么设计成不可变
于 2023-04-24 10:40:30 首次发布
1、字符串如果在字符串常量池,两个对象指向它,一个对象改变值,则另一个对象也会改变,不符合之前设计常量池的意义。
2、不可变的字符串可以用作hashmap的key
3、可以缓存hashcode,每次修改字符串值则需要变化其hashcode,降低效率。
4、可以保证线程安全