二者区别,简而言之,在于StringBuffer内部实现了线程同步,而StringBuilder没有。
二者均继承自AbstractStringBuilder。
JDK源码中可以看得更清楚些。
=============================
从源码中可以看出,子类AbstractStringBuilder已经实现了所有的操作,String...
分类:
其他好文 时间:
2014-06-05 06:47:58
阅读次数:
220
由于前面学习了StringBuffer和StringBuilder的父类AbstractStringBuilder,他们俩的很多方法都是直接super了父类的,也为了较好的比较StringBuffer和StringBuilder,所以把二者放在同一博文中。
一.StringBuffer
1.静态类,不能被继承,实现了Serializable和CharSequence接口。
public fi...
分类:
其他好文 时间:
2014-06-05 04:37:39
阅读次数:
254
.Net
4.0重构了StringBuilder的实现,采用了新的数据存储方式,不仅在效率上有大的提高,并且彻底避免了中间处理过程出现临时String对象进入LOH大对象堆的情况。本文对此进行分析。回顾.Net
2.0的StringBuilder实现Reflector查看StringBuilder的...
分类:
Web程序 时间:
2014-05-30 18:25:35
阅读次数:
445
关于“+”运算符对字符串的连接,不同的平台在实现上可能会略有不同。1、 Oracle
JDK1.7当使用“+”对字符串进行连接时,会创建一个临时的StringBuilder对象,该对象调用append方法负责字符串的连接操作,然后再调用StringBuilder类的toString方法转换成Stri...
分类:
其他好文 时间:
2014-05-30 18:13:21
阅读次数:
265
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作...
分类:
编程语言 时间:
2014-05-26 18:48:24
阅读次数:
262
备忘:1.C函数参数为字符串char*。如果是入参,对应C#中string或StringBuilder;如果是出参对应C#中StringBuider;2.C函数参数为结构体指针,需在C#中对应定义结构体。如果是入参,C#中可为myfunction(MyStruct
mystruct)或myfunct...
分类:
其他好文 时间:
2014-05-26 10:06:56
阅读次数:
158
* 全角转半角的 转换函数* @return String*/public static final
String full2HalfChange(String QJstr){StringBuffer outStrBuf = new
StringBuffer("");String Tstr = ""...
分类:
编程语言 时间:
2014-05-26 09:10:31
阅读次数:
316
(1)String构建的对象不能改变,每次对String进行操作时,如两个String相加,需要新建一个String对象,然后容纳最终的结果。
而StringBuilder与StringBuffer构建的对象可以随时在修改其内容,而无需生成新的对象。一般新建一个对象是会生成16个字节的空间,之后根据需要再增加空间。
由于一般新构建一个对象涉及分配内存空间分配、无引用对象过多时的垃圾回收等,因此,对于操作频繁的字符串需使用StringBuilder或StringBuffer...
分类:
其他好文 时间:
2014-05-25 18:17:57
阅读次数:
225
如果可变字符串操作较多的话,用STRINGBUILDER显然优势得多。public class
HelloJava { public static void main(String[] args) { // TODO Auto-generated
method stub ...
分类:
编程语言 时间:
2014-05-24 09:00:10
阅读次数:
328
例如:我想将String[] str = {"4","5","6"}转化为“‘4’,‘5’,‘6’”字符串。这样我就可以用sql查询:select * from tableName id in (字符串)了。
项目中实现的源码如下:
StringBuffer idsStr = new StringBuffer();
for (int i = 0; i < i...
分类:
数据库 时间:
2014-05-23 01:55:42
阅读次数:
390