您的位置:首页 > 产品设计 > UI/UE

Java中String、StringBuffer、StringBuilder的联系和区别

2017-04-22 09:35 561 查看
虽然网上有很多关于它们三者的解析,也都解释的很好,但我也想根据我的个人理解

谈谈Java中String、StringBuffer、StringBuilder的联系和区别。可能有误,望请指

正。

首先,它们都是final类的,也就是不可被继承,关于final的用法,我的上一篇博文

也提了,这里不再过多论述。

在做一些字符串操作的时候,它们三者的执行速度

为:String<StringBuffer<StringBuilder

在线程安全性方面,前两者是线程安全的,后者是线程不安全的。

究其原因,三者内部都是char[]数组实现的,而String内部char[]被final修饰,故

为不可变的,而后两者继承自AbstractStringBuilder抽象类,其char[]未被final修饰且

此抽象类实现了Appendable接口,故通过append()方法可改变其内容。

另外,String和StringBuffer实现线程安全的机制是不同的,String靠的是对象本身

不能被修改,而StringBuffer对字符串的操作都是通过synchronized机制完成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: