关于String、StringBuilder、StringBuffer的故事!

效率:StringString(大姐,出生于JDK1.0时代) 不可变字符序列     <StringBuffer(二姐,出生于JDK1.0时代)  线程安全的可变字符序列    <StringBuilder(小妹,出生于JDK1.5时代) 非线程安全的可变字符序列   。Java中的String是一个类,而并非基本数据类型。string是值传入,不是引用传入。 StringBuffer和StringBuilder可以算是双胞胎了,这两者的方法没有很大区别。但在线程安全性方面,StringBuffer允许多线程进行字符操作。 这是因为在源代码中StringBuffer的很多方法都被关键字 synchronized  修饰了,而StringBuilder没有。 StringBuilder的效率比StringBuffer稍高,如果不考虑线程安全,StringBuilder应该是首选。另外,JVM运行程序主要的时间耗费是在创建对象和回收对象上。

String对String  类型进行改变的时候其实都等同于生成了一个新的  String  对象,然后将指针指向新的  String  对象,而不是StringBuffer;StringBuffer每次结果都会对  StringBuffer  对象本身进行操作,而不是生成新的对象,再改变对象引用。 

猜你喜欢

转载自blog.csdn.net/zhaoliubao1/article/details/78276164