string、stringbuffer和stringbuilder的区别
2017-06-30 09:10
435 查看
1、可变与不可变
string类中使用字符数组保存字符串 如下就是, 因为有‘final’修饰符 所以string对象是不可变的private final char value[];
stringbuffer和stringbuilder都继承了abstractstringbuilder 类 ,在abstractstringbuilder中也是使用字符数组保存字符串,如下就是 可知这两个对象都是可变的。
char[] value;
2、线程安全
string对象是不可变的 可以理解为常量 因此线程安全abstractstringbuilder 是stringbuilder和stringbuffer的公共父类 定义了一些字符串的基本操作 和一些公共方法
stringbuffer对方法加了同步锁 因此线程安全
stringbuilder没有对方法加同步锁 因此非线程安全
3、stringbuilder和stringbuffer的共同点
他俩有一个公共父类(抽象类)抽象类与接口的唯一区别就是 抽象类可以定义一些子类共同的方法 子类只需要添加新的功能即可 不需要重写已经存在的方法
接口只是对方法的申明和常量的定义 。他俩都会调用抽象类中的方法如super.append
但stringbuffer在方法上加了synchronized关键字 进行同步
如果程序不是多线程 使用stringbuilder效率高于stringbuffer
相关文章推荐
- String、StringBuffer和StringBuilder的区别
- String、StringBuffer和StringBuilder 区别
- String, StringBuffer, StringBuilder的区别?
- String、StringBuffer与StringBuilder之间区别
- String StringBuffer和StringBuilder的区别?
- String,StringBuffer,StringBuilder的区别
- Java 中的字符串类String、StringBuffer、StringBuilder的区别
- String、StringBuffer与StringBuilder之间区别
- String、StringBuffer与StringBuilder之间区别
- String、StringBuffer与StringBuilder之间区别
- String ,StringBuffer ,StringBuilder 的主要区别
- String 和StringBuffer,StringBuilder的区别(转)
- JAVA中String与StringBuffer 、StringBuilder的区别
- String、StringBuilder和StringBuffer的区别
- String StringBuffer和StringBuilder的区别?
- stringbuilder stringbuffer 与String的区别
- Java 中的字符串类String、StringBuffer、StringBuilder的区别
- String,StringBuffer与StringBuilder的区别??
- String, StringBuffer, StringBuilder区别
- String、StringBuilder和StringBuffer的区别