String name1 = "abc";
String name2 = "abc";
String name3 = new String("abc");
String name4 = new String("abc");
System.out.println(name1 == name2); // => true
System.out.println(name1 == name3); // => false
System.out.println(name3 == name4); // => false
System.out.println(name1.equals(name2)); // => true
System.out.println(name1.equals(name3)); // => true
System.out.println(name3.equals(name4)); // => true
//Java 会为String建立字符串池, 通过 [=] 进行的赋值默认全部会现在字符串池中进行查找,
//如果找到的话就从字符串池中获取一个引用
//而通过New得到的变量则一定会建立新对象,所以通过 == 进行地址判断的时候会有完全不同的结果