-1
public static void main(String[] args)
{
    String literalstr = "ABC";
    String literalstr2 = "ABC";
    String str = new String("ABC");
    String str2 = new String("ABC"); 

if (literalstr == literalstr2)
{
     System.out.println("Literal String... I use String Pooling");
}
if (str != str2)
{
      System.out.println("Object String... I dont use String Pooling");
}
if (str.intern() == str2.intern())
{
     System.out.println("Interning ... I use String Pooling");
}
    // System.out.println(ric2);
}

实习生()的目的是什么?

4

1 回答 1

1

只需阅读 Java 文档,它就会告诉您:

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

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

当调用 intern 方法时,如果池中已经包含一个等于该 String 对象的字符串,该字符串由 equals(Object) 方法确定,则返回池中的字符串。否则,将此 String 对象添加到池中并返回对该 String 对象的引用。

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

所有文字字符串和字符串值的常量表达式都是实习的。字符串文字在 Java 语言规范的 §3.10.5 中定义

于 2014-03-10T12:35:48.027 回答