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机制完成的。
谈谈Java中String、StringBuffer、StringBuilder的联系和区别。可能有误,望请指
正。
首先,它们都是final类的,也就是不可被继承,关于final的用法,我的上一篇博文
也提了,这里不再过多论述。
在做一些字符串操作的时候,它们三者的执行速度
为:String<StringBuffer<StringBuilder
在线程安全性方面,前两者是线程安全的,后者是线程不安全的。
究其原因,三者内部都是char[]数组实现的,而String内部char[]被final修饰,故
为不可变的,而后两者继承自AbstractStringBuilder抽象类,其char[]未被final修饰且
此抽象类实现了Appendable接口,故通过append()方法可改变其内容。
另外,String和StringBuffer实现线程安全的机制是不同的,String靠的是对象本身
不能被修改,而StringBuffer对字符串的操作都是通过synchronized机制完成的。
相关文章推荐
- Java中String, StringBuffer 和 StringBuilder 三个类的区别和联系
- java核心API之String,StringBuffer和StringBuilder以及equals与==的区别和联系
- java String,StringBuffer,StringBuilder区别及联系
- Java 学习笔记 04 String 、StringBuilder 和 StringBuffer区别和联系
- Java中String,StringBuffer,StringBuilder区别与联系
- String,StringBuffer,StringBuilder之间的区别和联系
- Java中String,StringBuilder和StringBuffer的区别
- Java--String、StringBuffer与StringBuilder之间区别
- JAVA中String与StringBuffer,StringBuilder应用的区别
- Java学习札记13:浅析Java中的String、StringBuffer和StringBuilder的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- Java 中的字符串类String、StringBuffer、StringBuilder的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- Java中String,StringBuilder和StringBuffer的区别
- StringBuilder、StringBuffer和String三者的联系和区别
- JAVA中String、StringBuffer、StringBuilder的区别
- StringBuilder、StringBuffer和String三者的联系和区别
- Java中String,StringBuffer,StringBuilder的区别?