-
equals()和==是什么?
- equals():是方法,定义在超类Object中的一个方法,而Java中所有的对象都是继承自Object类的,所以子类是可以重写eqauls()方法而实现不同的功能。
- ==: 是操作符,用来比较两个对象。
为什么会将一个操作符和一个方法进行比较呢?
因为它们都是用来比较两个对象的,但它们在用法上又有些区别。
1.对于基础数据类型,使用“=="比较值是否相等;
2.对于复合数据类型(类),使用equals()和“==”效果是一样的,两者比较的都是对象在内存中的存放地址(确切的说,是堆内存地址)。
3.对于String、Integer、Date等覆盖了equals()方法的类型,“==”比较的是存放的内存地址。而equals()的结果则由覆盖后的代码决定。
4.string类型中,String重写了equals()方法,从引用地址比较变成引用内容的比较。如:
1 2 3 4 5 6 7 8 |
|