String,StringBuffer,StringBuilder区别(笔记)

2019-10-30 16:02:38来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

String,StringBuffer,StringBuilder区别(笔记)

String类被final修饰,创建的对象为不可变对象,属于字符串常量。

而StringBuffer与StringBuilder创建的属于字符串常量。

StringBuffer的方法大多用了Synchronized关键字修饰添加了同步锁。而StringBuilder没有。

所以StringBuffer是线程安全的而StringBuilder是线程不安全的。

由于String的对象属于不可变对象,所以在一些情况下对其操作会产生许多无用的中间对象,如拼接截取和替换,

如果频繁地操作会对性能有所影响。当内存里的无用对象多了以后,JVM的GC就会开始工作,速度是非常慢的。

StringBuffer与StringBuilder对比,前者线程安全后者线程不安全。所以多线程情况下,若有大量的字符串操作,应

使用StringBuffer。若为单线程,由于StringBuilder没有加锁,而StringBuffer加了许多同步锁,每次操作都得判断锁,

所以效率没有StringBuilder高。但对字符串有大量操作时,StringBuffer和StringBuilder都是比String快的。

总结:

若并没有大量字符串操作则使用String。否则根据线程情况,

若为单线程,则使用StringBuilder;若为多线程,则使用StringBuffer。


原文链接:https://www.cnblogs.com/vibe/p/11767080.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:2019 网易java面试笔试题 (含面试题解析)

下一篇:基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、