A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2019-8-10 18:35  /  2795 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        [1]引用数据类型;
        [2]字符串原理上是字符数组,而数组是长度固定不变;
       
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   [1]创建2个对象;  1.new String对象s在堆内存,2."abc"字符串创建在常量池
   [2]创建1个对象;  在常量池中创建
   
3.StringBuilder的作用,为什么要使用StringBuilder
   StringBuilder是预先加载的容量,优点是减少了创建对象的次数
   使用StringBuilder创建对象,可以在缓冲区去扩容,提高程序的执行效率
回复 使用道具 举报
1、引用数据类型,因为new String() 时候空间是分配的固定大小
2、String s = new String("abc")创建了两个对象,一个在堆内存中,一个在方法区的常量池中
     String s = “abc”创建了一个对象,在方法区的常量池中创建的
3、StringBulider是线程安全的可变序列,相比于String类的每次修改都要创建一个新的对象,即浪费时间又浪费空间,StringBuilder可以通过方法对字符串进行改变,不生成多余的空间就可以完成修改,效率更高,更安全
回复 使用道具 举报
(1)引用数据类型包括类,接口和数组,而Sring属于类,是引用数据类型。
     字符串效果上相当于字符数组,数组的长度确定以后是不能改变的,所以字符串的长度不可变。

(2)引用数据类型包括类,接口和数组,而Sring属于类,是引用数据类型。
     字符串效果上相当于字符数组,数组的长度确定以后是不能改变的,所以字符串的长度不可变。
(3)StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 对象中的内容是可变的
可以轻松的进行本身反转(reverse)
StringBuilder和String可以相互转换
String类每次拼接字符串都会创建一个新的对象,对程序的执行效率有影响,
StringBuilder每次拼接都是在缓冲区中,自始至终就一个对象,效率高于String。

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马