我读过这篇文章,我们什么时候应该在字符串常量上使用字符串的实习生方法,但仍然不太清楚 String == 也与实习生()比较。我有几个例子。有人可以帮助我更好地理解这一点。
String s1 = "abc";
String s2 = "abc";
String s3 = "abcabc";
String s4 = s1 + s2;
System.out.println(s3 == s4); // 1. why false ?
System.out.println(s3 == s4.intern()); // 2. why true ?
System.out.println(s4 == s1 + s2); // 3. why false ?
System.out.println(s4 == (s1 + s2).intern()); // 4. why false ?
System.out.println(s4.intern() == (s1 + s2).intern()); // 5. why true ?