首页 > 其他 > 详细

String 与StringBuffer习题

时间:2019-12-22 21:00:42      阅读:83      评论:0      收藏:0      [点我收藏+]

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

 

        // 画出如下几行代码的结构

        String s1 = "hello";   // value存储在常量池内
        String s2 = "hello";  // value存储在常量池内 和s1指向同一个值
        String s3 = new String("hello"); // 创建两个对象一个是在堆中创建, 一个是在char [] 中创建 指向常量池
        s1 += "world";  // value改变到堆中,堆中指向一个地址值, 然后这个地址值指向常量池,在常量池中新建一个value被指向

 

 

 

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

不可变性,是因为我们再改变一个String的值时其实不是对以前的值进行修改,是新建立一个值, 把新的引用指向这个新建立的值 而不是对以前的修改

 

 

3: String类是否可被继承,为什么?

不可被继承,因为源码中这个String类被声明为final的  是不可以被继承的

技术分享图片

 

 

 

String s = new String("hello"); 在内存中创建几个对象,请说明

在内存中创建两个对象, 一个在堆中创建, 一个是在char[] 中创建,char [] 中指向常量池中的"hello"

 

 

 

4: String StringBuffer, StringBuild 三者的对比

String 是不可变的字符序列  效率三者最差

StringBuffer 可变的字符序列  线程安全,效率三者中等
StringBuilder 可变的字符序列  线程不安全, 效率三者第一

 

 

5: String的常用方法 (7钟)

indexOf(String str) 求str在字符串的下标
charAt(int n) 求字符串中下标n的字符
replace(String str, String str1)  把字符串中str 替换为str1
contains(String str) 判断字符串是否包含str
concat(String str) 把字符串与str进行拼接
toLowerCase() 字符串中所有的字符全部小写
toUpperCase() 字符串中所有的字符全部大写
replcaeFirst(String str, String str1) 把字符串中第一个Str 替换为 str1

 

 

 

 

 

 

.

String 与StringBuffer习题

原文:https://www.cnblogs.com/zhaoyunlong/p/12080826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!