String、StringBuffer、StringBuiler三者之间的区别

本文介绍了Java中String、StringBuffer和StringBuilder的区别,强调了String的不变性和线程安全性的特点,以及在不同场景下的使用建议:JDK8以前用String处理少量数据,多线程用StringBuffer,单线程用StringBuilder,后者的性能更好因为不涉及同步锁。
摘要由CSDN通过智能技术生成

String是一个字符串常量,长度不可改变。

StringBuffer和StringBuilder是字符串变量,长度可以改变。

StringBuffer是线程安全的。

StringBuilder是线程不安全的。

jdk8及之前String底层使用被final修饰的字符数组来保存字符串,private final char[] value,String对象是不可变的,也可以理解为常量,线程安全。

jdk9及之后底层改为了final修饰的字节数组来保存字符串。

总结:

        如果操作少量数据,用String。

        如果多线程操作大量数据,用StringBuffer。

        如果单线程操作大量数据,用StringBuilder。

        StringBuffer线程安全是因为它对方法加了同步锁,StringBuilder并没有对方法加同步锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值