JAVA中Interned String的含义

时间:2014-03-19 14:16:41

标签: java string

在JAVA的背景下,interned strings的含义是什么? String类中的intern()方法是什么?我最近遇到了一个代码

"test" == "test" //output- true

输出的论据是字符串文字被实习。

1 个答案:

答案 0 :(得分:1)

取自http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#intern%28%29

  

返回字符串对象的规范表示。

     

一个字符串池,最初是空的,由私有维护   class String。

     

当调用实习方法时,如果池已包含   字符串等于此字符串对象由equals(Object)确定   方法,然后返回池中的字符串。否则,这个   String对象被添加到池中以及对此String的引用   返回对象。

     

对于任何两个字符串s和t,s.intern()== t.intern()   当且仅当s.equals(t)为真时才为真。

如上所述,此方法可用于生成两个内容相同但分别创建的字符串,仅在字符串池中存储一次,因此==运算符返回{{1 }}