说下你理解的字符串串池的好处,SUN公司为什么设计字符串串池
String s=“abc”,abc在字符串串池,而不在堆空间
是常量池,在方法区中,jdk7之后移动到了堆中
特征:
内部对象不可变,没有重复对象
字符串类型的变量,直接赋值,使用串池中的对象,
不存则创建,存在则直接引用
缺陷:
当串池数量过多,创建新对象效率变低,变量引用直接赋值也降低(需要遍历查重)
优势:
重复利用,节省存储空间,提升性能;
尽可能的规范程序员对字符串的赋值习惯(字符串有意义且尽量不拼接)
大量使用+拼接字符串会降低串池效率,代码开发中推荐使用StringBuffer(多线程)或StringBuilder(单线程)做拼接