天天看点

Java中String/StringBuffer/StringBuilder比较

运行速度比较:StringBuilder > StringBuffer > String

String是对字符串常量操作(String是final class),StringBuilder与StringBuffer是对字符串变量操作

Java中对String对象的操作实际上是不断创建新的对象并且将旧的对象回收的过程,所以执行速度慢。

而StringBuilder和StringBuffer是直接对变量对象进行修改,不进行创建和回收操作,所以速度比String快很多。

线程安全上,StringBuilder是非线程安全的,StringBuffer是线程安全的,在StringBuffer中很多方法带有synchronized关键字,而StringBuilder没有,所以StringBuilder运行速度比StringBuffer快,但如果在多线程环境中,用StringBuffer比较安全。

总之:

String适用于字符串操作比较少的情况

StringBuilder适用于单线程大量字符串操作的情况

StringBuffer适用于多线程大量字符串操作的情况