String,StringBuffer,StringBuilder简单介绍区别

String

    String是一个字符串类型,底层的实现是用的char数组去实现的,String中的char数组是用final修饰的,也就是说String中的char数组是不能改变的,在改变String类型的字符串的值的时候是改变重新创建了一个数组,而不是改变了原来的数组,下面我用打印地址的方式去验证。

 

StringBuffer

      StringBuffer也是一个字符串类型,它与String的不同之处是,StringBuffer中的char数组没有用final修饰,所以它的数组是可以改变的,改变StringBuffer的值的时候不会重新创建对象,而是改变原来的StringBuffer中的数组。同样的通过打印地址去验证

 

StringBuilder 

     StringBuilder同样也是一个字符串,它与String的不同之处是,StringBuilder 中的char数组没有用final修饰,所以它的数组是可以改变的,改变StringBuilder 的值的时候不会重新创建对象,而是改变原来的StringBuilder 中的数组。与StringBuffer的区别是StringBuffer是线程安全的,StringBuilder 不是线程安全的,在其他环境相同的情况下,只要解决线程安全问题就会影响效率,所以StringBuffer比StringBuilder的效率低,效率我就不验证了太麻烦了,下面代码验证StringBuilder对象可以改变。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值