码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈String、StringBuffer和StringBuilder类的区别

时间:2019-11-19 10:34:53      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:产生   变量   行修改   通过   未使用   线程安全   stringbu   机制   线程   

1、均可对字符串进行修改,但StringBuffer和StringBuilder类的对象进行多次修改时,不产生新的未使用对象。

  String 的底层是用final修饰的char数组,变量的内容不可变——内存占用高,资源利用率低;

  StringBuffer和StringBuilder类 则继承了AbstractStringBuilder类,其未使用final修饰char数组,变量内容动态更新——无效数组等待垃圾回收,减少资源占用; 

2、StringBuilder相较于StringBuffer有速度优势。

3、StringBuilder和StringBuffer最大的区别是StringBuilder不是线程安全(不能同步访问)。

  StringBuffer在拼接字符串时通过使用同步锁,实现线程安全;

  StringBuilder未使用同步锁机制,故效率高于Stringbuffer; 

浅谈String、StringBuffer和StringBuilder类的区别

标签:产生   变量   行修改   通过   未使用   线程安全   stringbu   机制   线程   

原文地址:https://www.cnblogs.com/yangjuanjuan/p/11887547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!