String类能不能被继承
不能
因为string类是被final修饰的类,final修饰过的类不能被继承、final修饰过的变量不能被修改
spring如何解决循环依赖?
spring只能通过提前暴露bean来解决setter注入的循环依赖,无法解决构造器注入的循环依赖;
String str = new String(“abc“)到底new了几个对象?
两个或者一个
1、两个:如果常量池里面没有“abc”这个字符串,那虚拟机就会在堆内存中new出一个String对象,还会在常量池中new一个abc字符串对象;
2、一个:如果常量池中已经有"abc"这个字符串,也就是说你在前面已经new过一个值为“abc”的字符串,那虚拟机就只会在堆内存中new一个String对象,并将常量池中“abc”的地址指向你刚刚new的String对象
String类的用法
一、创建字符串
二、字符、字节与字符串的转换
1.字符与字符串的转换:因为字符串等同于是一个个字符的集合,因此要想字符转为字符串则要调用String的构造方法并传入一个字符数组。因为字符串是字符的集合,因此可以字符串可以转换为一个字符或者一个字符数组。括号内的比如0、1是偏移量,偏移量是从0开始的,因此从偏移量为0的位置处往后取3个字符构成一个字符串。
2.字节与字符串的转换:Java中的将字节转为字符串需要将字节数组转为字符串。
三、字符串的比较
== ”与equals比较的方式是相同的。其实有很大的区别。
对于两个字符串用“ == ”比较,比较的是变量的引用。而String的equals方法比较的是两个字符串的内容。
四、字符串查找
1.判断一个子串是否存在于主串中:调用String类的contains方法,返回值为boolean。
2.从头开始查找一个子串,并返回第一个子串开始的索引位置,如果没有,则返回-1。也可以传入一个索引,代表是从哪个索引位置开始寻找,调用String类中的indexOf方法
3.从尾处开始寻找,查看主串中有无传入的子串,若有则返回索引值,没有则返回-1。调用String类的lastIndexOf,并且也可以传入索引代表从哪个索引值从尾处寻找到头处。调用String类的lastIndexOf
4.判断一个字符串是否以指定子串开头,调用String类中的startsWith方法。也可以传入索引值说明从指定位置开始判断是否以指定子串开头。
5.判断一个字符串是否以指定子串结尾。调用String类当中的endsWith方法。
五、字符串替换
六、字符串拆分
七、字符串截取
八、String类中其它的常用方法
九、对字符串引用的理解