king124
2016-12-09 15:15
StringBuilder sb = new StringBuilder("abc");
String s = sb.toString();
System.out.println(s.equals(sb));
为啥输出的是false,内容不是一样么?
首先,你的知道equals()比较的是什么. 在同一个类里,比较字符串中包含的内容是否相同。
而你知道他们的字符串是相等的,但是他们不同类
内存分配不一样. sb是可变的, s 不可变.
equals比较的是的类的类型是否相同,类的属性和方法是否相同
toString()是输入字符串每个字符的组合,StringBuilder定义的是字符串,本质不同
Java入门第三季
409792 学习 · 4340 问题
相似问题