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

博客主要介绍Java中String对象的比较。通过代码展示了使用`==`和`equals`比较不同方式创建的String对象的结果,指出`==`比较内存地址,`equals`比较值。还说明了不同创建方式的内存分配差异,如`new String()`会开辟两块内存空间。
1110

被折叠的 条评论
为什么被折叠?



