目录
466-String结构剖析
467-String结构剖析
468-String测试题1
469-String测试题2
470-String对象特性1
471-String对象特性2
472-String常用方法1
473-String常用方法2
474-String常用方法3
466-String结构剖析

1、接口Serializabel,说明String对象可以串行化,在网络传输
2、接口Comparable,说明String对象可以互相比较
3、接口CharSequence,



value不能指向新的地址,但是单个字符内容可以变化

467-String结构剖析
这两种方式创建String对象时不一样的




最终这两种方法创建的不是一个对象,指向的地址不同,一个指向堆,一个执行常量池
练习题:
1、
equals已经重写了,比较value存放的数组是不是一样;
a==b,都是在一个常量池,指向一个地址

468-String测试题1
3、
a==b,看的是否是一个对象,显然不是,一个在堆里,一个在常量池
b.intern,返回的是常量池中的地址(对象);b还是指向堆

4、
equals这里比较的是字符串内容

469-String测试题2

470-String对象特性1
1、
创建了两个对象

2、
只创建了一个对象

3、
创建了三个对象,因为每一个都有引用 ×不对


常量相加在池中,变量相加在堆中

471-String对象特性2
3、
两个都是True

4、

数组在默认情况下是放在堆里面的
str=“java”,是在常量池重新创建了
ch【0】=‘h’,是直接在数组中修改的
所以最后ex.str 不变是hsp;ex.ch 变了变成了hava

472-String常用方法1









473-String常用方法2



replace不改变原来的s1

对于一些特殊的分割字符,要用转义字符—“\”



如果字符长度不等,就用第一个字符串长度-第二个字符串长度,3-4=-1


474-String常用方法3
















![[数据集][目标检测]石油泄漏检测数据集VOC+YOLO格式6633张1类别](https://i-blog.csdnimg.cn/direct/2822e3d3a7cb47b4b32b16405d10897b.png)


