String,StringBuiler和StringBuffer一些浅认识

在阿里巴巴java开发手册上,推荐在循环体里,字符串的连接使用StringBuilder的append方法,并举出反例;

反例:

String str = "strat";
for (int i = 0; i < 100; i++) {
    str = str + "hello";
}

今天就说说对String,StringBuilder 和 StringBuffer的浅认识
String是一个包装类,它是Immutable,除了hash这个属性其它属性都声明为final,所以例如拼接字符串时候会产生很多无用的中间对象

String str = “strat”;
str = str + “hello”;
用String类对象直接拼接时,JVM会创建一个临时的StringBuffer或者StringBuilder类对象,并调用其append()方法完成字符串的拼接,这是因为String类是不可变的,调用后在进行toString(),因此这就有4个对象了,两个拼接的string,一个临时的StringBuilder和最后String。造成内存资源浪费

StringBuilder 和 StringBuffer的区别是线程安全,Builder没有线程安全,因此它的速度更快。

一些浅认识,如有错误欢迎指出。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值