String,StringBuffer和StringBuilder的区别
2017-08-20 17:14
309 查看
一、String专门定义不变字符串,String类中使用字符数组保存字符串,是不可变的(private final char value[ ]),StringBuffer和StringBuilder都继承自AbstractStringBuilder类,在AbstractStringBuilder中也使用字符数组保存字符串(char [ ] value),这两种对象是可变的。
二、使用:String适合比较短的字符串,StringBuffer和StringBuilder适合动态增加的字符串。在实际使用过程中String+String这种在BS开发结构中是不提倡的,对性能影响较大,推荐使用StirngBuffer。
三、线程安全:String中对象是不可变的,是线程安全的。
AbstractStringBuilder 是StringBuffer和StringBuilder的公共父类,定义了一些字符串的基本操作,如expandCapacity,append,insert,indexof等公共方法。StringBuffer对方法加了同步锁或者对调用的方法加了同步锁·,所以是线程安全的。StringBuilder并没有对方法加同步锁,所以是非线程安全的。
四、性能区别:StringBuffer和StringBuilder的方法都会调用AbstractStringBuilder 中的公共方法,只是StringBuffer会在方法上加synchronized关键字精心同步,如果不是多线程,StringBuilder的效率高于StringBuffer高于String。
二、使用:String适合比较短的字符串,StringBuffer和StringBuilder适合动态增加的字符串。在实际使用过程中String+String这种在BS开发结构中是不提倡的,对性能影响较大,推荐使用StirngBuffer。
三、线程安全:String中对象是不可变的,是线程安全的。
AbstractStringBuilder 是StringBuffer和StringBuilder的公共父类,定义了一些字符串的基本操作,如expandCapacity,append,insert,indexof等公共方法。StringBuffer对方法加了同步锁或者对调用的方法加了同步锁·,所以是线程安全的。StringBuilder并没有对方法加同步锁,所以是非线程安全的。
四、性能区别:StringBuffer和StringBuilder的方法都会调用AbstractStringBuilder 中的公共方法,只是StringBuffer会在方法上加synchronized关键字精心同步,如果不是多线程,StringBuilder的效率高于StringBuffer高于String。
相关文章推荐
- String、StringBuffer与StringBuilder之间区别
- String、StringBuffer与StringBuilder之间区别
- String 、StringBuffer 、StringBuilder区别是什么?
- String、StringBuffer与StringBuilder之间区别
- Java笔记—String,StringBuffer ,StringBuilder 的区别
- Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配
- String、StringBuffer与StringBuilder之间区别
- String,StringBuffer和StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- Java中String、StringBuilder和StringBuffer的区别
- String、StringBuffer、StringBuilder之间区别
- java:String、StringBuffer和StringBuilder的区别
- StringBuilder与StringBuffer和String 的区别
- String,StringBuffer与StringBuilder的区别??
- String, StringBuilder 与StringBuffer的区别与联系
- String,StringBuffer与StringBuilder的区别?
- String、StringBuffer和StringBuilder的区别
- String,StringBuffer与StringBuilder的区别??
- string与new string跟StringBuffer和StringBuilder的区别
- String,StringBuffer,StringBuilder之间的区别和联系