String中intern()方法具有什么功能呢?
下文笔者讲述String对象中intern()方法的功能简介说明,如下所示
intern()方法的功能
jdk1.6中,将这个字符串对象尝试放入串池。
当字符串池中有,则并不会放入
返回已有的串池中的对象的地址
如果没有,会将此对象复制一份
放入字符串池,并返回字符串池中的对象地址
从Jdk1.7起
将这个字符串对象尝试放入串池。
如果字符串池中有,则并不会放入。返回已有的字符串池中的对象的地址
如果没有,则会把"对象的引用地址"复制一份,放入字符串池,并返回字符串池中的引用地址
例
public class TestString {
static void test01(){
String s1 = new String("1")+new String("23");
String s2 = "123";
s1.intern();
System.out.println( s1 == s2); //false
}
static void test02(){
String s1 = new String("1")+new String("23");
s1.intern();
String s2 = "123";
System.out.println( s1 == s2);// false
}
void test03(){
String s1 = new String("1")+new String("23");
s1.intern();
String s2 = "123";
System.out.println( s1 == s2);// false
}
static void test04(){
String s1 = new String("1")+new String("23");
String s2 = "123";
System.out.println( s1 == s2);//false
s1.intern();
System.out.println( s1 == s2);//false
s1 = s1.intern();
System.out.println( s1 == s2);//true
}
public static void main(String[] args) {
test01();
System.out.println("-----------------");
test02();
System.out.println("-----------------");
TestString t = new TestString();
t.test03();
System.out.println("-----------------");
test04();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


