您的位置:首页 > 职场人生

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

2019-06-02 15:27 363 查看
                                                               

上诉三个都属于常见对象(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的数据最终是一个字符串数据;而数组可以放置多种数据,但必须是同一种数据类型的。

 

                           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: