java面试题--String、StringBuffer、StringBuilder的联系区别

Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder

相同点:

        1.Java的核心类,String位于java.lang包中

        1.都可以储存和操作字符串,同时三者都使用final修饰,都属于终结类不能派生子类,都是final类,不允许被继承,操作的相关方法也类似例如获取字符串长度等;

        2.底层都是一个字符数组,都实现了接口charquence,都是字符串相关类;

String与StringBuilder

不同点

        1.String:不可变字符序列,值在创建后不能被更改,但可以被共享;

            StringBuilder和StringBuffer是可变字符序列

        2.StringBuilder底层其实是一个长度可以动态增长的字符数组char[],默认长度是16,每次增长2倍,减少扩容的次数;

           String底层的数组引用变量是final的,一旦指定了一个字符数组,不能再改变指向。如果要进行字符串的拼接,需要生成新的字符串,效率低下;

StringBuilder和StringBuffer的区别和联系

联系:都是字符串相关类,都实现了CharSequence接口,底层都是一个char[]

区别:StringBuffer:线程安全的,可变的字符序列,效率低

           StringBuilder:线程不安全的,可变的字符序列  jdk1.5开始,效率高的不安全指的是数据的不确定性;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值