了解JavaString类

本章目录

    1.字符串构造

    2.String对象的比较

    3.字符串查找

    4.字符串常量池 

         4.1直接赋值和new构造String

        4.2String对象创建

    5.字符串的不可变性

    6.字符串修改

1.字符串构造

String类提供的构造方式非常多,常用的是以下三种:

注意:String是引用类型,内部并不存储字符串本身。字符串具体的内容存储在对象中,而字符串引用类型变量存储的是对象的地址。

 

 

      

2.String对象的比较

1.比较是否引用同一个对象

2.boolean equals(Object anobject)方法:按照字典序比较

字典序:字符大小的顺序

String类重写了父类Object中equals方法,Object中equals方法默认按照==比较,STring重写equals方法后。

 ——先检查s1和s2是否为用一个对象比较,是返回true,继续下一步

        s2是否为String类型的对象,不是返回false,是继续下一步

        s1和s2两个字符串的长度是否相等,不是返回false,是继续下一步

       循环检测s1和s2引用对象中每个字符是否相同,否返回false,是返回true

 

3.int compareTo(String s)方法

与equals相同都是按照字典序进行比较

不同是:equals返回的是boolean类型,而compareTo返回的类型是int类型。

具体比较方式:

1.先按照字典序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值

2.如果前n个字符相等(n为两个字符长度的最小值),返回两个字符串长度差值

 

4.int compareToIgnoreCase(String [] ars)方法:与compareTo方式相同,但是忽略大小写比较

3.字符串查找

 

 

拓展:

转化方法:

 

 

 4.字符串常量池

4.1直接赋值和new构造String

为什么s1和s2相等而s3和s4不同?

就是因为字符串常量池

字符串常量池在JVM中是StringTable类,实际是一个固定大小的HashTable(一种高效用来进行查找的数据结构)。

4.2String对象创建

1.直接使用字符串常量进行赋值

 2.通过new创建String类对象

3.intern方法

5.字符串的不可变性

 这中实际上并不是改变了String对象的本身输出的是在堆上新开辟的一个对象内存,输出的值是这个内存地址。

注意:String类中的字符实际保存在内部维护的value字符数组中

          String类被final修饰,表明该类不能被继承value被修饰被final修饰,表明balue自身的值不能改变,即不能因用其他字符数组,但是其 引用空间中的内容可以修改

6.字符串修改

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值