您的位置:首页 > Web前端

String和StringBuffer得区别

2009-11-27 12:03 459 查看
1.使用的区别:StringBuffer必须new起来,StringBuffer的append的效率比String的+=效率高;

2.String的值永远不会改变,例:String s1="abc"; String s2="def"; s1=s2; System.out.println(s1);

结果是:def;其实s1的值并没有改变,改变的只是它指向的地址;

StringBuffer则可以改变对象指向地址中的值,例:

StringBuffer sb1=new StringBuffer("A");
StringBuffer sb2=new StringBuffer("B");
sb1=sb2;
System.out.println(sb1);

结果是:B

3.StringBuffer s1 = new StringBuffer("a");
StringBuffer s2 = new StringBuffer("a");
s1.equals(s2)//为什么是false

String s1 = new String("a");
String s2 = new String("a");
s1.equals(s2)//为什么是true
StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,
而Object类中的equals方法是用来比较地址的,所以等于false.

String类中重新定义了equals这个方法,而且比较的是值,而不是地址。所以会是
true。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: