本文小编为大家详细介绍“Java中==和equals有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中==和equals有什么区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
==
是 Java 的一种操作符,有两种比较方式
对基本数据类型来说,==
的判断是两边值是否相等
public class DoubleCompareAndEquals { Person person1 = new Person(24,"boy"); Person person2 = new Person(24,"girl"); int c = 10; private void doubleCompare(){ int a = 10; int b = 10; System.out.println(a == b); System.out.println(a == c); System.out.println(person1.getId() == person2.getId()); }}
而对于引用类型来说,==
判断是两边引号是否相等,就是两个对象是否都指向同一个内存区域
private void equals(){ System.out.println(person1.getName().equals(person2.getName()));}
equals
是 Java 中任何对象的父类,就是 Object 类定义的方法。equals
只能进行对象比较,表示的是引用双方值是否为相等。这里要记住,不是说 ==
比较的就是引用是否相等,equals
比较的是值,需要区分来说。
equals
作对象间的比较有以下特性
自反性
:对任何非空引用(x)来说,x.equals(x) 会返回 true对称性
:对任何非空引用(x)和(y)来说,如果 x.equals(y)是 true,则 y.equals(x) 也为 true传递性
:对任何非空引用值来说,有三个值:x、y 和 z,如果 x.equals(y) 返回 true,y.equals(z) 返回 true,那么 x.equals(z) 也应该返回 true。一致性
:对任何非空引用 x 和 y 来说,如果 x.equals(y) 相等的话,那么它们必须始终相等。非空性
:对任何非空引用的值 x 来说,x.equals(null) 必须返回 false。
读到这里,这篇“Java中==和equals有什么区别”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。