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()....等方法 来修改值。创建的对象是可变,通常用于文件的读取和写入,把数据集中成一大段后在进行操作
从线程安全来说, StringBuilder是线程不安全的,StringBuffer是线程安全的,string的 + 比 StringBuffer和StringBuilder 的 Append() 性能差了很多,它们的执行速度是StringBuilder > StringBuffer > String
三者的适用场景:
String适用于少量字符串操作的情况;
StringBuffer适用于多线程下大量字符串操作的场景;
StringBuilder适用于单线程下大量字符串操作的场景。