背景
在Java中经常会用到比较两个值是否相等,常用的是==运算符以及equals方法
==
1.==
可以比较基本类型,也可以比较引用类型
2.==
比较基本类型时,是比较值是否相等
3.==
比较引用类型时,是比较堆中的引用地址是否相等,即是否为同一个对象
equals
1.equals是Object的一个方法,默认只能判断引用类型,但是子类可以重写equals方法,做指定的比较
String类重写equals方法
1.先判断引用地址是否相同,相同就返回TRUE
2.如果引用地址不同,在判断是否为String类或其子类,如果不是,返回FALSE
3.如果是String类或其子类,就判断长度是否一致,如果不一致返回FALSE,如果一致比较每个字符是否一致,如果不一致,返回FALSE,否则返回TRUE