标题: 【厦门JavaEE基础12期——每日总结】String&StringBuilder [打印本页] 作者: 厦门校区 时间: 2019-11-10 18:36 标题: 【厦门JavaEE基础12期——每日总结】String&StringBuilder 1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
3.StringBuilder的作用,为什么要使用StringBuilder作者: 吴碧山 时间: 2019-11-10 19:23
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:
(1)String类是引用类型数据。
(2)字符串底层是char数组,而数组在创建之初长度就是固定的,因此字符串的长度是不可变得。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答
(1)这句代码创建了2个对象,1.在堆内存中新建了一个new String,2.在堆内存的常量池生成一个abc;
(2)String s = "abc";这句代码创建了2个对象,在堆内存的常量池生成一个abc。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc")创建了两个对象,new String 和"abc",new Strig 再堆中,"abc"在堆中,
String s = "abc";创建了1个对象"abc",直接将变量指向方法区中的静态区内的”abc”这一实例。
3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的,
因为String对象内容是不可变的,而StringBuilder是一个类似于 String 的字符串缓冲区,每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。所以当我们需要改变字符串内容时,用StringBuilder更加灵活方便,作者: 胡辉 时间: 2019-11-10 20:04
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,因为String字符串是一个常量
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了两个对象 "abc"存放在堆内存的字符串常量池中 s直接存放在堆内存中
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了一个对象,存放在堆内存的字符串常量池中
3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符串,使用StringBuilder不用频繁的创建对象,提高效率作者: 陈嘉 时间: 2019-11-10 20:12
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,因为String底层逻辑是char[]数组,数组在创建之初长度是固定的,所以字符串长度不可变。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了两个对象,“abc”在堆内存中的字符串常量中创建了一个对象,s在堆内存中创建了一个对象。
3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是可变的字符串,在字符串拼接的时候效率比String更加快。作者: 陶舒航 时间: 2019-11-10 20:30
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两个对象,分别为new String在堆内存中,“abc”在堆内存的字符常量池中;
String s = “abc”;创建了一个对象,在堆内存的字符常量池中
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
(1)两个对象,"abc"创建在堆内存的常量池中,new的对象创建在堆内存中
(2)一个对象,"abc"创建在常量池中