-
identity: a variable holds the
same instance as another variable. -
equality: two distinct objects can
be used interchangeably. they often
have the same id.
Identity
For example:
Integer a = new Integer(1);
Integer b = a;
a
is identical to b
.
In Java, identity is tested with ==
. For example, if( a == b )
.
Equality
Integer c = new Integer(1);
Integer d = new Integer(1);
c
is equal but not identical to d
.
Of course, two identical variables are always equal.
In Java, equality is defined by the equals
method. Keep in mind, if you implement equals you must also implement hashCode.