String类对象数组可直接调用java.util.Arrays.sort()排序,而StringBuffered类对象数组不可以
String类的对象和StringBuffered类对象如果想要使用对象的方法进行一些处理,那么StringBuffered类对象可以使用public String toString()或public String (StringBuffer buffer)转为String类的对象使用,而String类的对象可以使用public StringBuffer(String str) 转为StringBuffered类对象使用。
一般的字符串对象都用String类,因为方便赋值,而且其具有的方法也多。而StringBuffered类对象主要用于经常修改的字符串对象。因为String类是常量类,其对象不可修改,对于其连接“+”操作会产生大量的内存垃圾,而StringBuffered类对象不会。
sans-serif;">
No. | 比较点 | String | StringBuffer | |
1 | 所在包 | java.lang | java.lang | |
2 | 声明方式(继承关系) | public final class String extends Object implements Serializable, Comparable<String>, CharSequence | public final class StringBuffer extends Object implements Serializable, CharSequence | |
3 | 实例化方式 | 直接赋值、构造方法实例化 | 构造方法实例化 | |
4 | 常用构造方法 | 无参 | public String() | public StringBuffer() |
两种类型之间互相转换 | public String (StringBuffer buffer) | public StringBuffer(String str) | ||
其他 | public String(String original) | public StringBuffer(CharSequence seq) | ||
public String(char[] value) | publicStringBuffer(int capacity) | |||
public String(char[] value,int offset,int count) | 无 | |||
5 | 实现字符串的连接 | 方法 | public String concat(String str) | public StringBuffer append(数据类型 b) |
运算符 | + | 无 | ||
6 | 返回指定位置的字符 | public char charAt(int index) | ||
7 | 返回字符数组 | public char[] toCharArray() | 无 | |
8 | 删除指定位置内容 | 无 | public StringBuffer delete(int start,int end) | |
9 | 在指定位置插入内容 | 无 | public StringBuffer insert(int offset,数据类型 b) | |
10 | 判断其中是否存在某个字符串 | public boolean contains(String s) | 无 | |
11 | 判断其中是否存在某个字符 | public int indexOf(int ch) | 无 | |
public int indexOf(int ch,int fromIndex) | ||||
public int lastIndexOf(int ch) | ||||
public int lastIndexOf(int ch,int fromIndex) |