主要区别是:
//字符串一样,但存储位置不一样,相当于当两个值
String a = new String("ab"); // a 为一个引用
String b = new String("ab"); // b为另一个引用,对象的内容一样
//字符串一样,存储位置也一样,相当于一个值
String aa = "ab"; // 放在常量池中
String bb = "ab"; // 从常量池中查找
if (aa == bb) // true
if (a == b) // false