为什么使用StringBuilder?StringBuffer可以与多个线程以及一个线程一起使用?
2022-09-03 03:51:49
假设我们的应用程序只有一个线程。而我们正在使用那么问题出在哪里呢?StringBuffer
我的意思是,如果可以通过同步处理多个线程,那么使用单个线程有什么问题?StringBuffer
为什么要改用?StringBuilder
假设我们的应用程序只有一个线程。而我们正在使用那么问题出在哪里呢?StringBuffer
我的意思是,如果可以通过同步处理多个线程,那么使用单个线程有什么问题?StringBuffer
为什么要改用?StringBuilder
StringBuffers
是线程安全的,这意味着它们具有同步方法来控制访问,以便一次只有一个线程可以访问 StringBuffer 对象的同步代码。因此,在多线程环境中使用 StringBuffer 对象通常是安全的,其中多个线程可能尝试同时访问同一个 StringBuffer 对象。
StringBuilder's
访问未同步,因此它不是线程安全的。通过不同步,StringBuilder的性能可以比StringBuffer更好。因此,如果您在单线程环境中工作,则使用StringBuilder而不是StringBuffer可能会提高性能。对于其他情况也是如此,例如StringBuilder局部变量(即方法中的变量),其中只有一个线程将访问StringBuilder对象。
所以,更喜欢因为,StringBuilder
看看这个:
StringBuilder应该快一点(微小),因为它不是同步的(线程安全的)。
您可以注意到在非常繁重的应用程序中的差异。
StringBuilder 类通常应优先于此类使用,因为它支持所有相同的操作,但它更快,因为它不执行同步。
http://download.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html