一.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
1.String类是引用数据类型;
2.字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[]),而数组在创建之初长度就是固定的,因此字符串的长度是不可变得。
二.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
1.String s = new String("abc")这句代码创建了两个对象,分别创建在堆内存和字符串常量池;
2.String s = "abc"这句代码创建了一个对象,双引号包括起来的直接在字符串常量池中创建.
三.StringBuilder的作用,为什么要使用StringBuilder
1.StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,可变指的是 StringBuilder 对象中的
内容是可变的.
2.因为String字符串拼接,会产生新的对象,拼接效率较低,使用StringBuilder能提高效率 |