java-string intern

new String("a");

这个方法会创建两个对象 一个String对象 一个"a"常量放到字符串常量池中

new String("a") + new String("b")

这个方法会创建相当于new String("ab")当时不会创建"ab"到字符串常量池

在1.7之前 intern方法 是把字符串值复制一份 在字符串常量池中创建一个字符串常量 是字符串的副本

1.7之后 intern方法 是把字符串对象的地址 存储在字符串常量池中

如果程序中大量的使用到了重复的字符串,这时可以使用intern方法 节省空间

原文地址:https://www.cnblogs.com/isnotnull/p/14757671.html