String,StringBuffer,StringBuilder区别与效率

本文详细对比了Java中String,StringBuffer和StringBuilder的特点及使用场景。解释了String为何不可变,StringBuffer如何实现字符串拼接并保持线程安全,以及StringBuilder在效率上的优势。此外还介绍了不同情况下字符串拼接的效率问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:String in Java

今天看到一篇文章,觉得很有用,特意记下来。 

总结:  
区别: 
1.String是不可变的,原因是其用于存储字符序列的char[] value数组被用final修饰了。 
2.StringBuffer的char[] value数组初始化长度是参数长度+16,所以可以使用其append()方法追加字符串。 
3.StringBuilder与StringBuffer类似,不同点是其方法没有被关键字synchronized修饰,所以它线程不安全,但它的效率要比StringBuffer高。 

效率: 
1.直接使用字符串常量“+”连接效率最高,例:String str = "abc"+"d";。 
2.append()方法的效率高于String对象的"+"连接运算。 
3.使用String类的intern()方法,可缓解因多次创建对象带来的程序低效问题。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值