2022.02.04每日一考String类相关

2022.02.04每日一考

1.画出如下几行代码的内存结构:

String s1 = "hello";

String s2 = "hello";

String s3 = new String("hello");

s1 += “world”;

 

 

 

 

 

2.如何理解String类的不可变性

 String是一个final类,代表不可变的字符序列。

String的对象赋值采用的是字面量赋值的方式,存在于字符串常量池中,如果要重新赋值,是在字符串常量池中新增,原先的不变。

 

String的对象赋值采用的是字面量赋值的方式,存在于字符串常量池中,如果要修改,是在堆空间中new一个String对象指向字符串常量池中新的修改后的字符串,原先的不变。

String类是否可以被继承?为什么?

不能被继承,因为它是final修饰的类。

 

String s = new String(“hello”);在内存中创建了几个对象?请说明

两个

 

 

 

4. String,StringBuffer,StringBuilder三者的对比

String:不可变字符串,效率低

StringBuffer:可变字符串,线程安全,效率较低

StringBuilder:可变字符串,线程不安全,效率较高

 

底层结构都是char型的数组,String加了final。

5. String的常用方法有哪些?(至少7个)

length

isEmpty

charAt(int index)

String replace(char oldChar, char newChar) 

String[] split(String regex, int limit)

String toLowerCase()

String toUpperCase()

String valueOf

posted @ 2022-02-04 21:31  Fancy[love]  阅读(27)  评论(0编辑  收藏  举报