1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型;因为String是常量
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc") 创建了2个对象,其中new String() 在堆内存中创建, "abc" 在堆
内存的常量区中的创建
String s = "abc" 在堆内存的常量区中创建了一个对象;
3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符序列;
因为String在拼接字符串的时候,由于其长度不可变的特性,会不断的创建新对象导致性能的损失,而
StringBuilder是可变的字符序列,在拼接字符串时只会新建一个对象,极大的提高了性能,所以当需要
频繁的拼接字符串的时候使用StringBuilder; |