String,StringBuilder和StringBuffer区别

三者区别

1.运行速度

StringBuilder > StringBuffer > String

 

2.线程安全

StringBuilder是线程不安全的,而StringBuffer是线程安全的

3.初始化

String test = null;/String test = "123";

StringBuffer test = new StringBuffer();/StringBuffer test = new StringBuffer("123");

 

原因

String的值是不可变的,导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以出现了StringBuilder和StringBuffer。

String:不可变字符

StringBuffer:可变字符,效率低,线程安全

StringBuilder(JDK1.5):可变字符,效率高,线程不安全

 

使用选择

String:适用于少量的字符串操作的情况

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

posted @ 2020-11-29 01:12  时间会有答案  阅读(102)  评论(0编辑  收藏  举报