java:用==或.equals()比较类:有区别吗?

Jas*_*n S 9 java equality class

可能重复:
Java是否保证Object.getClass()== Object.getClass()?

我知道你应该equals()在一般情况下使用,但是有两种Class<?>物体可以平等equals()但不相同==吗?

编辑:我特意想知道是否存在两个类对象

Class<?> cl1 = ...
Class<?> cl2 = ...
cl1.equals(cl2)    ->  true
cl1 == cl2         ->  false
Run Code Online (Sandbox Code Playgroud)

这似乎没有被可能的重复问题所涵盖.(这是密切相关的)

也可能不是真的,类对象是通过someObject.getClass()- 它可能是一个是Class.forName(...)一些反射行为的结果,而另一个是Method.getReturnType().

Sat*_*ish -2

所有对象都具有身份(对象在内存中的位置)和状态(对象的数据)。== 运算符始终比较同一性。equals 的默认实现也比较身份。

更完整的解释: http://www.javapractices.com/topic/TopicAction.do?Id =17