String、StringBuffer、StringBuilder的区别及使用场景
配套视频
速记表格
详细说明
String
-
String是final修饰的,对象不可变,线程安全。如果对一个已经存在的String对象修改,会重新创建一个新对象,并把值放进去。
StringBuffer
-
StringBuffer,采用 synchronized 关键字修饰,线程安全
StringBuilder
-
StringBuilder,非线程安全,但效率会更高些,适用于单线程。
StringBuffer 和 StringBuilder 的方法基本相同只是在效率上有所不同
// 增加 StringBuffer append(data);尾部添加 StringBuffer insert(index,data);指定未知插入 // 删除 StringBuffer delete(int start, int end) StringBuffer deleteCharAt(int index):删除指定位置的元素 // 修改改 StringBuffer replace(start,end,string); void setCharAt(index,char); // 查询 char charAt(index); int indexOf(string);
继承结构
使用场景
性能:String <StringBuffer<StringBuilder
-
经常需要改变字符串内容时使用后两个 优先使用StringBuilder,多线程使用共享变量时使用StringBuffer