String与StringBuffer的区别

1、String与StringBuffer的区别的

简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改;而字符串对象一旦产生后就不可以被修改,重新赋值其实是两个对象
StringBuffer的内部实现方式和字符串不同,StringBuffer的在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入,删除等操作,使用StringBuffer要更加适合一些。

字符串

在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个Java 字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的,然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。 [1]

2、变量:

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据 保存在一些内存单元中,每个内存单元都用一个标识符来标识,这些内存单元被称为变量。定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

3、StringBuffer 和 StringBuilder 的区别

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
————————————————
[1]版权声明:此部分为CSDN博主「stone_tomcate」的原创文章,
原文链接:https://blog.csdn.net/stone_tomcate/article/details/64132736