Java String Interning-什么,为什么和何时?

字符串实习不过是存储给定不同值的一个副本。这用于使字符串处理更加节省时间和空间。

String类的intern()方法返回字符串对象的规范表示。最初为空的字符串池由String类私有维护。

对于任何两个字符串s和t,当且仅当s.equals(t)为true时,s.intern()== t.intern()才为true。所有文字字符串和字符串值常量表达式均已插入。

示例

import java.lang.*;
public class StringDemo {
   public static void main(String[] args) {
      String str1 = "This is nhooo";
     
      // returns canonical representation for the string object
      String str2 = str1.intern();
     
      // prints the string str2
      System.out.println(str2);
     
      // check if str1 and str2 are equal or not
      System.out.println("Is str1 equal to str2 ? = " + (str1 == str2));
   }
}

输出结果

This is nhooo
Is str1 equal to str2 ? = true