参考了:
String a; String aa = ""; String aaa = "123"; String b = new String(); String bb = new String(""); String bbb = new String("123"); String c = null;
System.out.println(aa == bb); // false System.out.println(aa.equals(bb)); // true System.out.println(aa.equals(b)); // true System.out.println(b == bb); // false System.out.println(bb.equals(b)); // true System.out.println(c); // null |
a:未被初始化,什么操作也进行不了;
aa和aaa:内容不同,都是在字符串池中创建了字符串,然后返回的引用;
b和bb:没有区别,都是在堆中创建的字符串,与aa内容一样;
bbb:与b和bb只是内容不同;
c:null在java里是一个特别的东西,内容不同于aa;