Java中String,StringBuilder,StringBuffer的区别

xiaoxiao2021-02-28  117

基本概念

1.String String是个final类,不能被继承。同时相应的对象也是一个不可变对象,一旦创建就不能修改它的值。平时对于String的修改都是重新创建一个新的 对象,然后把新的值保存进去的。

2.StringBuffer StringBuffer是一个对象可变的类,对他进行修改的时候不会像String那样重新创建一个对象。

3.StringBuilder StringBuilder也是一个对象可变的类,对他进行修改的时候不会像String那样重新创建一个对象。StringBuilder和StringBuffer的区别就是StringBuilder的方法不是线程安全的了,但是速度快。

线程安全

如果进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他变量的值也和预期的是一样的,就是线程安全的。

建议

少量数据操作,可以使用String;如果是单线程操作大量数据,则用StringBuilder;如果是多线程,则使用StringBuffer。

不要使用String的“+”进行连接操作,使用StringBuffer和StringBuilder的append操作。

使用StringBuilder比StringBuffer仅能够提升10%-15%的性能,一般情况下不确定是否会有多线程的情况比较下,还是选择StringBuffer比较的保险。

转载请注明原文地址: https://www.6miu.com/read-63859.html

最新回复(0)