Java基础(32):String与StringBuilder、StringBuffer的区别(String类)

时间:2023-03-09 19:08:59
Java基础(32):String与StringBuilder、StringBuffer的区别(String类)

在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么它们之间有什么区别呢?

String 类具有是不可变性。如

Java基础(32):String与StringBuilder、StringBuffer的区别(String类)

运行结果:

Java基础(32):String与StringBuilder、StringBuffer的区别(String类)

从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld"。当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。

那么如何定义 StringBuilder 类的对象呢? 我们来看下面的代码:

Java基础(32):String与StringBuilder、StringBuffer的区别(String类)

运行结果: imooc