标签:line 拼接 size 频繁 str ring append 可变 indexof
String、StringBuffer、StringBuilder都是java中的常用字符串类 ,下面来看看三者之间的异同。
String:字符串常量,不可变。StringBuffer、StringBuilder为可变字符序列,是可变的。
String中的对象是不可变的,相当于常量,显然线程安全。
StringBuffer:支持多线程安全。
StringBuilder:不支持多线程安全。
String、StringBuffer、StringBuilder用于字符串拼接:String str1="asdfgh"; String str2="lkjhdsa";
使用String:String str3=str1+str2; 效率最低。
使用StringBuffer::str1.append(str2); //使用StringBuiffer的append()方法进行追加。 效率较高(由于其需要实现线程安全,故效率比StringBuilder低。)
使用StringBuilder:str1.append(str2); //使用StringBuilder的append()方法进行追加。 效率最高 。(不用考虑线程安全问题,故执行效率最高)
一、如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。
二、不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类。
增:insert();
删:delete();
改:replace();
查:indexOf();
其具体用法可以参考java API文档。
java中的String、StringBuffer、StringBuilder的区别
标签:line 拼接 size 频繁 str ring append 可变 indexof
原文地址:http://www.cnblogs.com/sheepych/p/7220390.html