共享元数据,用一个池子装着已经生称号的对象,要用到这个对象的时候直接去池子里取
public class TestString {public static void main(String[] args) {String s1 = "abc";String s2 = "abc";String s3 = new String("abc");String s4 = new String("abc");System.out.println(s1 == s2); //trueSystem.out.println(s1 == s3); //falseSystem.out.println(s3 == s4);//falseSystem.out.println(s3.intern() == s1);//trueSystem.out.println(s3.intern() == s4.intern());//true}}
字符串是存在常量池里面的。
s1,s2引用是一样的, 其它的引用不一样,String.intern()优先取的是常量池里面的引用,所以为true。
