MTK——String

2017-08-29  本文已影响11人  远o_O

注意:

public class Intern {
    public static void main(String[] args) {
        String s1 = "name";
        String s2 = new String("name");
        String s3 = "na";
        String s4 = "me";
        String s5 = "na" + "me";
        String s6 = s3 + s4;

        System.out.println(s1 == s2);//常量池 != 堆,false
        System.out.println(s1 == s5);//均在常量池,true
        System.out.println(s1 == s6);//由于StringBuilder在堆中生成了新对象,特别注意和上一个区别,false
        System.out.println(s1 == s6.intern());//s6.intern(),拉回了常量池,如果常量池存在,直接返回,true
        System.out.println(s2 == s2.intern());//false,s2.intern()返回一个新引用,指向常量池。
    }
}

上一篇 下一篇

猜你喜欢

热点阅读