我在论坛中搜索,我明白getClass()
返回一个参考 ,但它是一个特殊的参考,并且每个呼叫getClass
返回给定的类完全相同的参考。这意味着我们可以使用“==”而不是“equals”来比较它们。getClass()返回什么作为参考?
我想知道这是如何特别提到创建并返回每一次和每一次
我在论坛中搜索,我明白getClass()
返回一个参考 ,但它是一个特殊的参考,并且每个呼叫getClass
返回给定的类完全相同的参考。这意味着我们可以使用“==”而不是“equals”来比较它们。getClass()返回什么作为参考?
我想知道这是如何特别提到创建并返回每一次和每一次
是怎么回事一样Class
对象为每个类是一个单例。这意味着它以这样的方式写入,即每个类只有一个对象存在。
恐怕这不是我正在寻找的答案。我不确定,但我认为它建立在类加载器中,你能给我更多的细节吗? –
关于什么的更多细节? –
getClass如何工作!当我们为每个类运行代码时,它会形成一个内存空间吗? –
,getClass为我们的类创建一个引用,并且每当我们返回时调用getClass? –
A.R.,我怀疑你是在混淆一个Class
对象,与该类对象的实例。他们不一样。
每种Java类型只有一个Class
对象。 getClass
返回对该Class
对象的引用。因为只有一个这样的对象,所有对它的引用都是相同的,并且==
起作用。类对象在第一次被使用时被加载,由ClassLoader
加载。没有人需要“创建”引用它。它坐在那里,在记忆中,可以被引用。正如@JoeC指出的那样,它是一个单身人士。巴姆!
可能有许多实例给定的类。每个独立实例都有自己的状态,不与任何其他实例共享。作为其状态的一部分,每个实例具有的其中一个事物是对其Class
的引用。当然,这个参考文献与其他每个班级的参考文献都是一样的。他们是==
!
已修改添加:了解Class
对象本身是Class<?>
类型的实例可能会有所帮助。可能有很多String
s,但只有一个Class<String>
的实例,其类型(Class)是Class<?>
。
请参阅链接http://stackoverflow.com/questions/2812680/getclass-method-in-java –