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

String StringBuff StringBuilder 使用。

时间:2020-05-22 09:17:37      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:主程序   多线程   出现   err   改变   没有   ring   sync   情况   

1,String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

   String s1 = "aaa", StringBuferr sb = new  ...   调用 change(s1, sb){   s1= "bbb", sb.append("ddd") } ; 后主程序 s1不变,sb改变。

       StringBuilder和StringBuffer的对象是变量,对变量进行操作就是直接对该对象进行更改,而不进行创建和回收的操作,所以速度要比String快很多

2.如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作。所以如果要进行的操作是多线程的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。

String StringBuff StringBuilder 使用。

标签:主程序   多线程   出现   err   改变   没有   ring   sync   情况   

原文地址:https://www.cnblogs.com/yangjunhe460/p/12935085.html

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