String 字符串常量
String 是不可变的对象,在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String。
StringBuffer 字符串变量(线程安全)
StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer 。
StringBuffer 上的主要操作是 append , insert和delete 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。
append()方法用于向字符串中追加内容,通过该方法的多个重载形式,可实现接受任意类型的数据,如int,boolean,char,String,double等。
语法如下:appen(content)
content表示要追加的内容,可以是任何类型的数据或者其他对象。
insert(int offset,arg)方法用于指定位置插入数据内容,通过该方法的多个重载形式,实现插入int,float,char,和boolean等基本数据类型的数据或者其他对象。
语法如下:insert(int offset arg)
int offse:字符串的位置,该参数大于0,小于等于次序列的长度。
arf:将插入到字符串的位置,该参数可以是任意数据类型的数据或者其他对象。
delete (int start,int end)方法:删除次序列字符串中的字符,从指定的start开始,到索引end-1处字符结束。
StringBuilder 字符串变量(非线程安全)
因为在大多数实现中,它比 StringBuffer 要快,建议优先采用该类。
两者的方法基本相同。