1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用数据类型包括类,接口和数组,而Sring属于类,是引用数据类型。
字符串效果上相当于字符数组,数组的长度确定以后是不能改变的,所以字符串的长度不可变。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:对于String s = new String("abc")分为两种情况:
(1)如果常量池中有字符串abc,那么只会字内存中创建一个对象。
(2)如果常量池中没有字符串abc,那么在常量池中创建一个内容为abc的对象,但是遇到了new关键字,则还是会在内存(不是常量池)中创建一个对象,然后将对象返回给引用s。
对于String s = "abc"是在常量池中创建了一个对象
3.StringBuilder的作用,为什么要使用StringBuilder
答:StringBuilder是一个可变的字符串类,可以用它存储字符串。
因为用String每次对字符串拼接,都会产生一个新的对象,会比较浪费空间,使运行速度下降,
StringBuilder是一个可变的字符串类,可以在原有的基础上拼接字符串。 |