相同点:
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
String类和StringBuffer类的异同
最新推荐文章于 2024-07-11 09:18:50 发布