(尚硅谷java零基础教程)学习笔记day19-每日一考

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

String s1 = "hello"; 
String s2 = "hello";
String s3 = new String("hello");
s1 += “world”; 

注意:这里 s1 += “world”; 相当于 s1 = s1 + “world”; ,有变量参与。
在这里插入图片描述

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

  1. 当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值。
  2. 当对现有的字符串进行连接操作,也需要重新指定内存区域,不能使用原有的value进行赋值。
  3. 当调用String的 replace() 方法修改指定字符或字符串时,也需要重新指定内存区域。

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

声明为 final,不可继承。

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

2个,堆空间一个,常量池一个。

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

String(JDK1.0):不可变字符序列,底层使用char[]存储
StringBuffer(JDK1.0):可变字符序列、效率低、线程安全,底层使用char[]存储(可扩容)
StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安全,底层使用char[]存储(可扩容)

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

length() / charAt() / equals() / compareTo() / startsWith() / endsWith()
containts() / indexOf() / lastIndexOf() / getBytes() / toCharArray() / valueOf() / ….

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值