String与StringBuffer的比较

来源:互联网 发布:多益网络前端待遇 编辑:程序博客网 时间:2024/05/22 06:57
相同点:
a)        String类和StringBuffer类都用来处理字符串。
b)        StringBuffer和String类都提供了length(),toString(),charAt(),subString方法,他们的用法在两类中完全相同。
c)        对于String与StringBuffer类,字符在字符串中的索引位置都从0开始。
不同点:
1)        String类是不可以变类,而StringBuffer类是可变类。
2)        String类覆盖了Object类的equals方法,而StringBuffer类没有覆盖Object的equals。
String str1=new String("abc");
           String str2=new String("abc");
           StringBuffer sb1=new StringBuffer("abc");
           StringBuffer sb2=new StringBuffer("abc");
           System.out.println(str1.equals(str2));//true
           System.out.println(sb1.equals(sb2));//false
3)        两个类都覆盖了Object类的toString方法,但各自的实现方式不一样:
String类的toString方法返回当前String实例本身的引用,而StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符为内容的新的String对象的引用。
String s="abc";
           StringBuffer sb=new StringBuffer("abc");
           System.out.println(s==s.toString());//true
           System.out.println("abc"==sb.toString());//false

 
原创粉丝点击