String类和StringBuffer类的异同

相同点: 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类的异同)