String,StringBuffer和StringBuilder的区别

String,StringBuffer和StringBuilder的区别

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:My Eclipse 10  ,Java

作者:陈显其

撰写时间:2019/6/5

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Java的String类,StringBuffer类和StringBuilder类都是代表着字符型的数据,都可以操作字符串,String类的内容也就是它的值无法被改变, 值一旦发生改变,那就是隐形的重新建立了一个新的String类对象,所以不推荐用string类去拼接字符串

StringBuffer类和StringBuilder类的值是可以改变的,它们可以通过append()、insert()、reverse()....等方法 来修改值。创建的对象是可变,通常用于文件的读取和写入,把数据集中成一大段后在进行操作

String,StringBuffer和StringBuilder的区别

 

从线程安全来说, StringBuilder是线程不安全的,StringBuffer是线程安全的,string的 +  StringBuffer和StringBuilder  Append() 性能差了很多,它们的执行速度是StringBuilder > StringBuffer > String

三者的适用场景:

String适用于少量字符串操作的情况;

StringBuffer适用于多线程下大量字符串操作的场景;

StringBuilder适用于单线程下大量字符串操作的场景。