标题String类

它是引用数据类型,也是我们经常会用到的。它的直接赋值就可以创建它的对象,对象就能使用它的属性和方法。
**
Obiect类
类层次结构最顶层的基类,所有类都直接或间接的继承Object。

由于所有的类都是Obiect类的子类,所以任何类都可以重写Obiect类中的方法,但是有一些方法不能被重写,因为这些方法被定义为final类型比如:notify(),wait(),get
Class(),notifyAll()等。重写和引用不是一回事哦。

hashCode()该方法通过对象的地址值进行计算,不同对象的返回值一般不同,像String这些默认重写了equals()的,返回值是相同的。
getClass()返回调用此方法对象的类名称。
输出对象,如果没有重写toString()方法,那输出的就是地址值,如果重写了,就可以直接输出对象名,注意重写的位置。

关于等于(==)
1.当比较对象为基本数据类型时,比较的是数据的大小。2.当比较对象为引用类型时,比较的是引用类型中存放的地址。(其实好像也不准确,目前来说 ,只要记得像String这种默认重写equals,等于比较结果是false,equals比较结果是ture)

equals()方法是对象比较函数,按照对象比较,系统默认四个类重写该方法:Integer , String,Date,File。
没有重写equals()方法的类,对象比较,无论是等于还是equals(),结果都是false。

String是引用类型在创建String时两种方法一种是直接赋值这个时候会把值存到常量池中不会重新分配地址。第二种用new的方式每次new都会分配一个新的地址,所以用==比较就是false而String底层重写了equals和hashCode方法只需要比较具体值是否相同,所以结果是true**

**下面是常用的一些方法:
1.判断当前字符串是否相同,区分大小写。 equals()
方法2.判断当前字符串是否相同,不区分大小写。 equalslgnoreCase()方法

3.判断是否以给定字符开头和结尾。startsWith()和 endsWith()。
4.判断字符串是否为空。isEmpty()和isBlank()。
5.获取当前字符串长度。length()
6.获取指定字符第1次和最后一次出现的索引。 indexOf()和lastlndexOf()

7.获取指定索引位置的字符,charAt();获取某段字符,substring()。
8.将指定字符替换成新的字符。replace()
9.去除字符串两端的空白字符,注意去掉的并不是字符串中间的字符。trim()
10.切割字符串。split()

11.将字符串转换成字节数组,getBytes()。
将字节数组转成字符串,new String()就是构造一个新对象,把字节数组当参数。
12.将字符串转换成字符数组toCharArray()。
将字符数组转换成字符串,new String(),和字节一样。
13.将指定类型数据转换成字符串String.valueof()

14.compareTo()按照字典顺序比较两个字符串。
对象compareTo(参数对象)
例如:a compareTo(b)结果为一个负整数。
c compareTo(b)结果为一个正整数。如果两个对象相等,则结果为0。记忆方法,顺负,反正。

注意:字节,字符和字符串。**
StringBuilder和StringBuffer可变字符序列用于构造字符串对象,内部使用自动扩容的数组操作字符串数据。如果你的字符串要经常变动,用它们比用String好,因为他们在使用时可以不断添加字符字符串等已有内容。使用方法也方便,new一个对象即可。比较常用的是append()方法。