String、StringBuilder和StringBuffer
2012-09-10 23:47
190 查看
Stirng:
String 是不可变的对象,在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
StirngBuffer:
每次更改都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。
StringBuilder:
StringBuilder 是 JDK5.0 中新增加的一个类,StringBuffer 线程安全的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。与StringBuffer 类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。 但是如果将 StringBuilder 的实例用于多个线程是不安全的。需要这样的同步,则建议使用 StringBuffer 。
基本来说都是在性能上都是 StringBuilder > StringBuffer > String。
String 是不可变的对象,在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。
StirngBuffer:
每次更改都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下我们推荐使用 StringBuffer ,特别是字符串对象经常改变的情况下。
StringBuilder:
StringBuilder 是 JDK5.0 中新增加的一个类,StringBuffer 线程安全的可变字符序列。类似于 String 的字符串缓冲区,但不能修改。与StringBuffer 类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。 但是如果将 StringBuilder 的实例用于多个线程是不安全的。需要这样的同步,则建议使用 StringBuffer 。
基本来说都是在性能上都是 StringBuilder > StringBuffer > String。
相关文章推荐
- String,StringBuffer,StringBuilder
- 在Java中,String、StringBuffer、StringBuilder之间的区别
- String、StringBuffer和StringBuilder
- String、StringBuffer与StringBuilder之间区别
- String、StringBuffer与StringBuilder之间区别
- 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之间区别
- java中String、StringBuffer、StringBuilder的区别
- Java中String, StringBuffer, StringBuilder的区别和常用方法
- String, StringBuffer, StringBuilder 三个类比较
- String、StringBuffer与StringBuilder之间区别