该如何创建字符串,使用“ ”还是构造函数

2016/3/7 posted in  Java
实例一
String a = "abcd";
String b = "abcd";
System.out.println("a == b : "+(a == b)); // true
System.out.println("a.equals(b) : "+(a.equals(b))); // true

当相同的字符串常量被多次创建时,只会保存字符串常亮的一份副本,这称为“字符串驻留”。在Java中,所有编译时字符串常亮都是驻留的。

实例二
String c = new String("abcd");
String d = new String("abcd");
System.out.println("c == d : "+(c == d)); // false
System.out.println("c.equals(d) : "+(c.equals(d))); // true

运行时字符串驻留

String c = new String("abcd").intern();
String d = new String("abcd").intern();
System.out.println("c == d : "+(c == d)); // true
System.out.println("c.equals(d) : "+(c.equals(d))); // true    (JDK1.7)