qq_寧靜以致遠_0
2015-09-25 21:23
为什么最后要将StringBuilder转换为Sting ????是因为String有更多的操作方法所以才要转换的么???
equas()b比较的是内容,==比较的是地址,创建对象就是在内存中开辟新的地址而StringBuilder并没有创建对象
为什么第三个输出是false还有最最后一个为什么说是讲Stringbuffered转化为String
public class HelloWorld { public static void main(String[] args) { // 创建一个空的StringBuilder对象 StringBuilder str=new StringBuilder(); // 追加字符串 StringBuilder str2=str.append("jaewkjldfxmopzdm"); System.out.println(str); System.out.println(str.toString()); System.out.println(str.equals(str.toString())); System.out.println(str==str2); // 从后往前每隔三位插入逗号 for(int i=str.length()-3;i>0;i=i-3){ str.insert(i,','); } // 将StringBuilder对象转换为String对象并输出 System.out.print(str.toString()); } }
运行的结果是:
jaewkjldfxmopzdm jaewkjldfxmopzdm false true j,aew,kjl,dfx,mop,zdm
这就是String和StringBuilder的区别。
我觉得是编译器中的解释有点问题,toString()方法就是将这个对象编程字符串输入而已 你试试不要toString() 直接输入str也是这个结果,打印直接对象时,默认调用的就是toString()方法. 不存在什么类型转换
Java入门第三季
409792 学习 · 4340 问题
相似问题