美文网首页
String的intern()方法

String的intern()方法

作者: bboymonk | 来源:发表于2017-10-15 10:17 被阅读0次
    public class Test {
        public static void main(String[] args) {
            //此时s3的值是11,常量池中的值是1,
            String s3 = new String("1")+new String("1");
            //此时s3的值是11,s3.intern()在常量池中寻找,没有就创建,常量池中的StringTable默认大小1009,所以现在常量池中的值是11,
            s3.intern();
            //b想在常量池中创建11,发现s3已创建,所以直接引用a的地址。
            String s4 = "11";
            //所以s3==s4是true,JDK7之后常量池的内存是放在堆中。
            System.out.println(s3 == s4);
    
        }
    }
    
    public class Test {
        public static void main(String[] args) {
            //此时生成两个对象,常量池中的1和堆中的string对象
            String s = new String("1");
            //s 对象去常量池中寻找后发现1已经在常量池里了。
            s.intern();
            //生成一个引用b指向常量池中的1
            String s2 = "1";
            //两个引用不一样,所以是false
            System.out.println(s==s2);
        }
    }
    

    相关文章

      网友评论

          本文标题:String的intern()方法

          本文链接:https://www.haomeiwen.com/subject/qbbquxtx.html