String
Sting在赋值的是后是不会被修改的,会重新创建一个String对象,之前存储的值将被保存 例如:
Sting str = "hello";
str = str + "java";
此时创建的Sting类型的数据有3个 “hello” “java” “hellojava”(不包括之前有存过)导致内存空间的浪费
StringBuffer 和 StringBuilder
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuffer:
效率低,线程安全(多数情况下使用)
StringBuild:
效率高,线程不安全
三者的区别:
String 允许被赋予空值,而另外两个不允许
Sting赋值后不可被修改,后者可以
使用场景:
String:数据量少,且不经常对其修改
StringBuffer:多线程操作字符串缓冲区下操作大量数据
Stringbulider:单线程操作字符串缓冲区下操作大量数据