String str1 = "nice" ;
String str2 = new String("nice");
System.out.println(str1==str2); //false
System.out.println(str1.equals(str2)); //true
区别就是str1开辟了一块内存空间,而str2开辟了两块内存空间,指向的是第二块内存空间
==和equals的区别
equals比较的是值,==比较的是内存地址
这里面有一些共享设计模式的东西,但是共享设计模式我也不太懂,大家自己去看一下
还有
String str = "nice";
String str1 = new String("nice).intern();
System.out.println(str == str1); //这时候是true