public class StringTest { public static void main(String[] args) { String s1 = new String("hello"); //生成了2个对象(String 池一个,堆一个) String s2 = "hello";//指向String 池 //没有生成对象(因为在String 池里面已经有了一个) String s3 = new String("hello"); //生成了1个对象(String 池一个,堆一个) System.out.println(s1==s2); System.out.println(s1==s3); System.out.println(s2==s3); } } //输出 false,false,false(因为他们指向的对象都不想等)
public class StringTest { public static void main(String[] args) { String hello = "hello"; String lo = "lo"; System.out.println(hello == "hel" + "lo"); System.out.println(hello == "hel" + lo); } } //输出 true,false (第一个字面值)