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(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。