为什么String.class ==“test”.class

时间:2010-12-10 09:19:41

标签: java class

任何人都有任何想法,为什么==符号适用于.class比较?

此外,getClass()方法的javadoc为

  

返回此运行时类   宾语。 返回的Class对象是   静态锁定的对象   同步方法   代表班级。

实际结果类型为Class<? extends |X|>,其中|X|是调用getClass()的表达式的静态类型的擦除。例如,此代码片段中不需要强制转换:

Number n = 0; 
Class<? extends Number> c = n.getClass();

“静态同步方法锁定的对象”是什么意思?

1 个答案:

答案 0 :(得分:7)

==进行身份比较,并且(通常)每个类只有一个副本。 “由静态同步方法锁定的对象”意味着它所说的内容;它是声明为static和synchronized的方法将尝试锁定的对象。