String和StringBuilder的区别

String的特点

        String在创建之后长度内容是不可变,String是用引用类型,其底层操作的还是字符数组。

当拼接一个字符串,都会产生一个新的对象。

String str1 = "String";

String str2 = "Hello" + str1;

以上两种创建方式直接赋值和字符串拼接的产生的,保存在字符串常量池中的;

如果是直接通过new方式创建的,保存在堆中的;

String str3 = new String("Hello World!");

上面这创建方式会创建2个对象:

第一个:字面量“Hello World!”

---Java会创建一个String对象表示的字面量“Hello World!”,并将其存入常量池;

第二个:new String()

---new String()时会在创建一个字符串,并引用字面量的内容,str3存的是new String()对象的地址;

String的优缺点

优点:String类提供了丰富的关于操作字符串的方法,例如:获取字符串长度,截取子串,获取对应下标处的字符串的索引值等

缺点:在进行字符串拼接的时候,效率比较低,所以Java就提供StringBuilder用来高效率的拼接。

StringBuilder的特点:

是一个可变的字符串可变的字符串序列,在创建的时候,会有一个长度为16 的默认空间,在拼接字符串的时候,是在原基础上进行拼接,如果长度不够就扩容,之后对应的操作一直是用一个对象。

优缺点:

优点:在拼接的时候,不会产生新的对象,就避免了因为拼接频繁生成对象,提高程序的拼接效率。

缺点:对于字符串的操作,不太方便,所以在使用时候,如果拼接操作很多的话,可以将String转为StringBuilder进行拼接,拼接完成之后在转回String。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值