规则:当调用intern方法时,如果常量池中已经包含一个等于此string对象的字符串,则返回池中的字符串。否则,将此string对象添加到池中,并返回此string对象的引用。
示例1:
class InternDemo
{
public static void main(String[] args)
{
String s = "abc";//常量池中的abc
String s1 = new String("abc");//堆内存中abc
String s2 = s1.intern();//返回常量池中abc的引用
System.out.println(s==s2);//true
System.out.println(s1==s2);//false
}
}
示例2:
class InternDemo
{
public static void main(String[] args)
{
String s1 = new String("abc");
//将此string对象添加到常量池中,并返回此string对象的引用
String s2 = s1.intern();
System.out.println(s1==s2);//false
}
}
不知道,上面的理解对不对,请大神指教? |
|