Java 中的字符常量串池( String Pool )是一个存储在 Java 堆内存中的字符串池。 我们知道 String 是 java 中的特殊类,我们可以使用 new 操作创建 String 对象,也可以使用双引号来创建 String 对象. 1.常量池中字符串仅是符号,第一次用到时才变为对象 2.利用串池机制,来避免重复创建字符串对象 3.字符串变量拼接的原理是StringBuilder(1.8) 4.字符串常量拼接的原理是编译器优化 5.可以使用intern方法,主动将串池中还没有的字符串对象放入串池 jdk1.8 将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有则放入串池,会把串池中的对象返回 jdk1.6 将这个字符串对象尝试放入串池,如果有则并不会放入,如果没有则把对象复制一份(又创建了一个新的对象,这个对象才会放入串池,调用intern方法的对象和放入串池中的对象是两个对象)放入串池,会把串池中的对象返回。