2017-04-23 50 views
-2

我在论坛中搜索,我明白getClass()返回一个参考 ,但它是一个特殊的参考,并且每个呼叫getClass返回给定的类完全相同的参考。这意味着我们可以使用“==”而不是“equals”来比较它们。getClass()返回什么作为参考?

我想知道这是如何特别提到创建并返回每一次和每一次

+1

请参阅链接http://stackoverflow.com/questions/2812680/getclass-method-in-java –

回答

1

是怎么回事一样Class对象为每个类是一个单例。这意味着它以这样的方式写入,即每个类只有一个对象存在。

+0

恐怕这不是我正在寻找的答案。我不确定,但我认为它建立在类加载器中,你能给我更多的细节吗? –

+0

关于什么的更多细节? –

+0

getClass如何工作!当我们为每个类运行代码时,它会形成一个内存空间吗? –

0
  1. getClass()方法返回对象的运行时类。
  2. 返回的类对象是被表示类的静态同步方法锁定的对象。
+0

,getClass为我们的类创建一个引用,并且每当我们返回时调用getClass? –

0

A.R.,我怀疑你是在混淆一个Class对象,与该类对象的实例。他们不一样。

每种Java类型只有一个Class对象。 getClass返回对该Class对象的引用。因为只有一个这样的对象,所有对它的引用都是相同的,并且==起作用。类对象在第一次被使用时被加载,由ClassLoader加载。没有人需要“创建”引用它。它坐在那里,在记忆中,可以被引用。正如@JoeC指出的那样,它是一个单身人士。巴姆!

可能有许多实例给定的类。每个独立实例都有自己的状态,不与任何其他实例共享。作为其状态的一部分,每个实例具有的其中一个事物是对其Class的引用。当然,这个参考文献与其他每个班级的参考文献都是一样的。他们是==

已修改添加:了解Class对象本身是Class<?>类型的实例可能会有所帮助。可能有很多String s,但只有一个Class<String>的实例,其类型(Class)是Class<?>

相关问题