day18每日一考
题目
1.画出如下几行代码的内容结构:
String s1 = “hello”,
String s2= “hello”;
String s3 =new String(“hello”);
s1+=“world";
2.如何理解String类的不可变性
3.String类是否可以被继承?为什么?
String s=new String(“hello");在内存中创建了几个对象?请说明
4.String,StringBuffer,.StringBuilder三者的对比
5.String的常用方法有哪些?(至少7个)
答案
第一题
第二题
String的属性为final,即为不可变
String的字符串赋值保存在常量池中,常量池中每个字符串均为单一存在,有就直接指向
第三题
String类是无法被继承的,声明为final
两个对象,一个对象堆内存实例化对象,一个为常量池存储值
第四题
String:不可变字符序列,由char[]储存
StringBuffer:可变字符序列,由char[]储存,线程安全,效率低
StringBuilder:可变字符序列,由char[]储存,线程不安全,效率高
StringBuffer默认为长度16的字符串数组,超出可以自动扩容,扩容长度为16*2+2
执行效率:StingBuilder>StringBuffer>String
第五题
toString()/subString()/charAt()/indexOf()/split()/endsWith()/startsWith()/length()/equals()/toCharArray()/getBytes()/contains() /compareTo()