==和equals()方法的区别
这是一道经典的面试题,但是很多人对其一直很困惑,最近刚好复习了他们两者的区别,现总结如下:
一、==:两端可以存放不同的数据
1、放基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,否则返回false。注:两端数据类型可以不同,在不同的情况下,也可以返回true(涉及到类型的自动提升)
2、放引用数据类型:比较引用类型变量的地址值(堆空间中对象的首地址)是否相等
二、equals():只能处理引用类型变量
1、在object类中:equals()仍然比较的是两个引用变量类型
2、像String 包装类 File类 Date类,这些类重写了Object类的equals()方法,比较的是“实体内容”是否完全相同