==号和equals()方法的区别

共同点

  • 都可以作比较
  • 返回值都是boolean

区别

 

  • ==号是一个比较运算符,既可比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
  • equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,也是比较地址值,重写后的equals方法比较的是对象中的属性值。查看Object类源码可知,equals在没重写之前,底层依赖的是==号,但是比较地址值是没有意义的,一般需要重写比较属性值
  • 需要注意的是,查看String类源码可知,String类重写了equals方法,重写后的equals方法比较的是属性值

猜你喜欢

转载自blog.csdn.net/zhuzbYR/article/details/89735256