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

String Stringbuilder Stringbuffer的区别

时间:2019-11-20 19:40:39      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:cts   相对   没有   tst   final   区别   继承   不可   ring   

可变性
String 是final修饰的类,其中是使用final来修饰字符数组来保存字符串的,所以string是常量,值不可变的类。
stringbuffer和stringbuilder都是继承自abstractStringbuilder类,abstractStringbuilder也是使用字符数组来保存字符串的,但是没有使用final修饰,所以对象是可变的。
线程安全
而stringbuffer对方法加入了同步锁或者对调用的方法加入了同步锁,所以是线程安全的。而StringBuilder没有对方法加锁,所以是线程不安全的。
性能
String,对于string的操作,每次新增字符串,都是生成一个新的string对象,指针会指向新的string对象地址。
Stringbuffer每次操作都是对stringbuffer对象本身的操作,不会产生新的对象,相对会在性能上优于string,而stringbuilder在性能上,会比使用stringbuffer提升10-15%的性能的提升。
使用过程中:
对于少量字符的操作,string操作更方便。
对于单线程的字符串操作stringbuilder更快。
而对于多线程的字符串操作,stringbuffer更安全。

String Stringbuilder Stringbuffer的区别

标签:cts   相对   没有   tst   final   区别   继承   不可   ring   

原文地址:https://www.cnblogs.com/liyy7520/p/11899260.html

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