java中String、StringBuffer、StringBuilder总结
2016-12-21 15:04
537 查看
java中String、StringBuffer、StringBuilder总结
1.String 字符串常量,但在进行不同String对象改变时会比StringBuffer慢,
但直接拼接如:String s1 = "this is a String" + "test"; 这样却比StringBuffer 快很多。
2、StringBuffer 字符缓冲区,线程安全,append 方法始终将这些字符添加到缓冲区的末端。
StringBuffer 's toString mothed -->String 对象
3.StringBuilder 非线程安全
使用原则:
(1)基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。
(2)不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类,这在Java的优化上是一条比较重要的原则。
(3)为了获得更好的性能,在构造 StringBuffer 或 StringBuilder 时应尽可能指定它们的容量。当然,如果你操作的字符串长度(length)不超过 16 个字符就不用了,当不指定容量(capacity)时默认构造一个容量为16的对象。不指定容量会显著降低性能。
(4)StringBuilder一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃。StringBuffer主要用在全局变量中。
(5)相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。而在现实的模块化编程中,负责某一模块的程序员不一定能清晰地判断该模块是否会放入多线程的环境中运行,因此:除非确定系统的瓶颈是在 StringBuffer 上,并且确定你的模块不会运行在多线程模式下,才可以采用StringBuilder;否则还是用StringBuffer。
参考资料:
http://blog.csdn.net/kingzone_2008/article/details/9220691
javaAPI
1.String 字符串常量,但在进行不同String对象改变时会比StringBuffer慢,
但直接拼接如:String s1 = "this is a String" + "test"; 这样却比StringBuffer 快很多。
2、StringBuffer 字符缓冲区,线程安全,append 方法始终将这些字符添加到缓冲区的末端。
StringBuffer 's toString mothed -->String 对象
3.StringBuilder 非线程安全
使用原则:
(1)基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。
(2)不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类,这在Java的优化上是一条比较重要的原则。
(3)为了获得更好的性能,在构造 StringBuffer 或 StringBuilder 时应尽可能指定它们的容量。当然,如果你操作的字符串长度(length)不超过 16 个字符就不用了,当不指定容量(capacity)时默认构造一个容量为16的对象。不指定容量会显著降低性能。
(4)StringBuilder一般使用在方法内部来完成类似"+"功能,因为是线程不安全的,所以用完以后可以丢弃。StringBuffer主要用在全局变量中。
(5)相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。而在现实的模块化编程中,负责某一模块的程序员不一定能清晰地判断该模块是否会放入多线程的环境中运行,因此:除非确定系统的瓶颈是在 StringBuffer 上,并且确定你的模块不会运行在多线程模式下,才可以采用StringBuilder;否则还是用StringBuffer。
参考资料:
http://blog.csdn.net/kingzone_2008/article/details/9220691
javaAPI
相关文章推荐
- 重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结
- JavaString、StringBuilder、StringBuffer总结
- Java中 String、StringBuffer 、StringBuilder 总结
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- 【学习总结】java高级特性之String、StringBuffer、StringBuilder
- java String、StringBuffer、StringBuilder总结
- Java中String、StringBuffer、StringBuilder的总结
- Java String,StringBuilder,StringBuffer区别和实际应用总结
- java中String、StringBuffer、StringBuilder的总结
- JAVA知识点总结(六)String、StringBuffer、StringBuilder
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- 黑马程序员 日记四:String、StringBuffer和StringBuilder的比较与总结
- JAVA中String与StringBuffer,StringBuilder应用的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- Java String,StringBuilder,StringBuffer
- Java中的String、StringBuffer和Math类--学习java语言及其网络应用总结
- Java中的字符串 String, StringBuffer和StringBuilder
- Java的String与StringBuffer、StringBuilder的性能比较
- Java中String, StringBuffer 和 StringBuilder 三个类的区别和联系
- Java中String,StringBuilder和StringBuffer的区别