高并发、高可用环境中java字符串的正确使用方式

        在java中,我们都知道String是不可变的,StringBuilder和StringBuffer是可变的。而StringBuffer是线程安全的,而StringBuilder是非线程安全的。

但是,对于它们使用的场景,我们也需要知道:

1、在有字符串存在大量的修改操作下,我们一般使用 StringBuffer 或者 StringBuilder

2、在有字符串存在大量的修改操作下,并且是在单线程的情况下,我们一般使用 StringBuilder

3、如果在有串存在大量的修改操作下,并且在多线程的情况下,我们一般使用 StringBuffer

4、在有字符串很少修改的情况下,被多个对象引用,我们一般使用 String,比如配置信息等。

性能比较:

1、String的性能是最低的,因为它不可变,意味着在做字符串拼接和修改时,需要反复地重新地创建新的对象和分配内存。

2、其次是StringBuffer,它要比String性能高,因为它的可变性使得字符串可以直接被修改。

3、性能最高的是StringBuilder,因为StringBuffer加了同步锁,而StringBuilder是无阻塞的。

数据存储方式:String存储在字符串常量池中。StringBuffer和StringBuilder存储在堆内存空间。

注意:循环体内,比如for循环,字符串的连接方式,使用StringBuilder的append,不要使用+。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值