“==”,equals(),equalsIgnoreCase()的区别
- == :是比较八大基本数据类型的字面值,和引用类型的内存地址。
- equals():只能比较引用数据类型,且需要重写equals()方法。在没有重写equals()方法时,比较的是内存地址,而重写equals()方法后比较引用类型的值是否相等。
- equalsIgnoreCase():equalsIgnoreCase()只能通过String对象进行调用,主要作用是比较字符串在不区分大小写的情况下是否相等。
- 当使用equals()去比较的时候切记需要重写equals()和hashCode()方法,在java中规定,hashCode()相等时equals()可以不相等,但是equals()相等hashCode()必须相等,在hashmap和hashset中需要根据生成的hashCode相等来判断是否重复,若没有重写equals()和hashCode()则会产生错误。