string类

1.string类是final类,也就意味着string类不能被继承,并且它的成员方法都默认为final方法,在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法
2.string类其实是通过char数组来保存字符串的
3.无论是substring,cancat,还是replace在操作时都不是在原字符串上进行操作,而是重新创建一个新的字符串对象,也就是说进行这些操作之后,原字符串并没有被改变
永远要记住一点;string对象一旦被创建就是固定不变的了,对string对象的任何改变都不影响到原对象,相关的任何change操作都会生成一个新的对象
4.string类初始化后是不可变的
string使用private final char value[ ]来实现字符串的存储,也就是说string对象被创建之后,就不能修改此字符串中存储的字符串内容,就是因为如此,才说string类是不可变的
5.创建字符串的方式有两种
第一种:使用“”号创建string x="y";    此种不一定被创建,可能是引用了字符串池中的对象
第二种:使用new关键字来创建string x=new string(“y”);    此种一定被创建
第一种:使用引号创建的字符串都是常量,编译器就已经确定存储到string pool(字符串池)中    
第二种:使用new string(“”)创建的对象会存储到heap(堆栈)中,是运行时期创建的;
new 创建字符串时首先会查看字符串池中是否存在相同值的字符串,如果有,直接将其拷贝一份到堆中,然后返回堆中的地址;如果池中没有,则在堆中创建一份,然后返回堆中的地址,(注意:此时不需要从堆中复制到池中,否则将使得堆中字符串永远是池中的子集,导致浪费池的空间)
==比较的是内容跟地址
equals比较的是内容 
Java 中,String 是一个非常重要的,它用于处理字符串。以下是一些 String 的特点: 1. String 是不可变的 String 的实例是不可变的,一旦一个 String 对象被创建,它的值就无法被修改。例如,下面的代码创建了一个 String 对象: ``` String str = "Hello"; ``` 如果要将 str 的值修改为 "World",则需要重新创建一个新的 String 对象。这是因为 String 被设计为不可变的,这样可以提高安全性和线程安全性。 2. 字符串的比较 在 Java 中,可以使用 equals() 方法来比较两个字符串是否相等。例如: ``` String str1 = "Hello"; String str2 = "World"; if (str1.equals(str2)) { System.out.println("str1 和 str2 相等"); } else { System.out.println("str1 和 str2 不相等"); } ``` 还可以使用 equalsIgnoreCase() 方法来忽略字符串中的大小写。 3. 字符串的拼接 在 Java 中,可以使用加号(+)来拼接字符串。例如: ``` String str1 = "Hello"; String str2 = "World"; String str3 = str1 + " " + str2; System.out.println(str3); ``` 上面的代码会输出 "Hello World"。 4. 字符串的截取 可以使用 substring() 方法来截取字符串。例如: ``` String str = "Hello World"; String subStr = str.substring(6, 11); System.out.println(subStr); ``` 上面的代码会输出 "World",其中 substring() 方法的第一个参数是起始索引,第二个参数是结束索引(不包括在内)。 5. 字符串的查找 可以使用 indexOf() 和 lastIndexOf() 方法来查找字符串中某个字符或子字符串的位置。例如: ``` String str = "Hello World"; int index = str.indexOf("o"); int lastIndex = str.lastIndexOf("o"); System.out.println(index); // 输出 4 System.out.println(lastIndex); // 输出 7 ``` 其中 indexOf() 方法返回第一个匹配字符或子字符串的位置,lastIndexOf() 方法返回最后一个匹配字符或子字符串的位置。 除此之外,String 还有许多其他的方法,例如 trim() 方法可以去除字符串两端的空格,toUpperCase() 方法可以将字符串转换为大写,toLowerCase() 方法可以将字符串转换为小写,length() 方法可以获取字符串的长度等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值