package String类;
/**
*
* TODO
* StringBuffer类和String一样,也代表字符串,只是由于StringBuffer的内部实现方式和String不同,
* 所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。
* 最显著的区别:对于StringBuffer是可变对象,String类是不可变的(占用内存大)
* 如对一个字符串进行大量的修改操作,强烈推荐使用StringBuffer
*
* @author qiqitrue
* @version 1.0
* @since 2014-6-15
*/
public class StringBufferTest {
/**
* 1.线程安全的可变字符序列,线程安全的都会降低效率。
* 2.StringBuffer 上的主要操作是 append 和 insert 方法
* 3.与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
*/
public static void main(String[] args) {
//初始化StringBuffer对象以及与String类的区别
init();
//StringBuffer与String互转
conversion();
//常用方法
commonUseMethod(new StringBuffer());
}
//初始化StringBuffer对象以及与String类的区别
public static void init(){
//初始化一个空的对象
StringBuffer buf1 = new StringBuffer();
//初始化一个指定字符串的对象
StringBuffer buf = new StringBuffer("Java ");
// StringBuffer buf2 = "";//StringBuffer和String属于不同的类型,也不能直接进行强制类型转换
// StringBuffer s = (StringBuffer)"abc";//不存在继承关系,无法进行强转
}
//StringBuffer与String类互转
public static void conversion(){
//String转StringBuffer
String str = "abc";
StringBuffer sbf = new StringBuffer(str);
//StingBuffer转String
str = sbf.toString();
}
//StringBuffer常用的方法
public static void commonUseMethod(StringBuffer sbf){
//追加append方法:往现有的字符最后面追加内容
sbf.append(false);//Boolean类型
sbf.append('c');//char
sbf.append(new char[]{'d', 'e' });//char[]
sbf.append(1.4444444);//double、float、int、long
sbf.append(new Object());//Object表示将任意类型的数据.toString()方式添加到最后
sbf.append(new StringBuffer());//本身类型
sbf.append(new char[]{'a', 'b'}, 0, 2);//从char[]数组中的第0开始,取2个(未验证)
//删除deleteCharAt删除指定位置的字符,然后将剩余的内容形成新的字符串
sbf.deleteCharAt(0);//删除第一个字符
sbf.delete(0, 3);//删除从索引0到3的位置字符
//插入insert插入内容,然后形成新的字符串
sbf.insert(4, true);//从索引4开始插入true,原先后面的字符再移至true后面
//反转reverse实现将内容进行反转,形成新的字符
sbf.reverse();
//修改,修改对象索引为5的字符为B
sbf.setCharAt(5, 'B');//该方法的作用是修改对象中索引值为index位置的字符为新的字符ch
}
}
转载于:https://my.oschina.net/qiqitrue/blog/1579129