class.class代表什么

时间:2012-07-24 14:02:21

标签: java class synchronization

当我们同步一些静态方法时,在class.class上获取了锁 那么class.class表示什么,通过谷歌搜索和阅读一些论坛,我开始了解它的java.lang.Class实例,对于内存中的所有类,都存在一个与它们相关的java.lang.Class实例。是吗?

可以用这个创建该类的对象并获得对此的锁定,除了它提供的所有主要功能在我的常规Java应用程序中有用吗?

欢迎任何参考链接。谢谢!

1 个答案:

答案 0 :(得分:1)

  

...它的java.lang.Class实例,对于内存中的所有类,都存在一个与它们关联的java.lang.Class实例。

基本上,是的,虽然我认为它是每个类加载器的一个副本而不是总共。但是你通常只有一个类加载器...

Class实例表示整个类,与其他类不同,就像类的实例不同于该类的所有其他实例一样。因此,由于静态方法特定于类(就像非静态方法特定于实例一样),因此在调用静态方法时(如果方法需要同步)在类实例上进行同步是有意义的。这就是为什么如果你将synchronized关键字作为一个整体应用于整个方法,JLS所说的就会发生这种情况。