面试题:String、StringBuffer、StringBuilder的区别与联系

上诉三个都属于常见对象(API):具体的使用方法此处不再详细列举

String类:

字符串:就是由多个字符组成的一串数据,也可以看成是一个字符数组,通过查看API可知:

(1)字符串字面值(如:“abc”)可以看成是一个字符串对象;

(2)字符串是常量,一旦被赋值就不能被改变,这也就是为什么说:String类为什么是final的原因。

String类的特点:

 

A:字符串直接赋值的方式是先到字符串常量池里面去找,如果有就直接返回;如果没有,就创建并返回。

B:一旦被赋值,就不能被改变。值不能变。

 

StringBuffer:

线程安全的可变字节。

 

面试题1:String s = new String("hello")和String s = "hello"有区别吗?

有区别。前者会创建两个对象,后者创建一个对象。(分析请看String类的特点介绍)

 

 

面试题2:有关此处看程序写结果的问题?

 

答:(1)字符串如果是变量相加,先开空间,再拼接;

(2)字符串如果是常量相加,先加,之后在变量池找,如果有就直接返回,没有,就创建。

面试题3:StringBuffer和String区别?

StringBuffer长度和内容可变,String内容和长度不可变。如果使用StringBuffer做字符串的拼接,不会浪费太多的资源。

面试题4:String、StringBuffer、StringBuilder的区别?

(1)String是内容不可变的,而StringBuffer、StringBuilder都是内容可变的。

(2)StringBuffer是同步的,数据安全的,但是效率低;    StringBuilder是不同步的,数据不安全,相比于来说,效率高。

面试题5:StringBuffer和数组的区别?

二者都是可以看成是一个容器,装其他的数据,但StringBuffer的数据最终是一个字符串数据;而数组可以放置多种数据,但必须是同一种数据类型的。

 

  • 17
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值