String,StringBuilder和StringBuffer的区别?

1.String,StringBuilder和StringBuffer的区别

 String 是不可变字符串,根据实时情况使用,在循环当中尽量不要使用,因为会产生好多没用的字符串。

StringBuilder 可变字符串,线程不太安全,但效率高。

StringBuffer 可变字符串,线程安全,但效率低。

建议:如果是简单的声明一个字符串没有后续过多的操作,使用String,StringBuilder均可,若后续对字符穿做频繁的添加,删除操作,或者是在循环当中动态的改变字符穿的长度应该用StringBuilder。因为在循环中使用String会产生多余的字符串,占用内存空间。

2.StringBuilder类的构造方法

1.


StringBuilder a1=new StringBuilder();//初始长度为16

2.创建初始长度为指定长度的可变字符串


StringBuilder a1=new StringBuilder(8);//初始长度为8

3.


StringBuilder a1=new StringBuilder("abcd");//初始长度为20:传入字符串的长度+16

4.

创建的可变字符串长度=传入的字符序列的长度+16.

3.StringBuilder原理:

StringBuilder可变字符串是由字符数组来实现的。虽然字符数组创建后其长度不可变,但是当通过append()向StringBuilder可变字符串中加元素时,如果长度度不够,则创建一个新的数组(长度=原数组长度*2+2)来储存字符串,把原来字符数组中的元素复制到新字符数组中,原来的字符数组舍弃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值