当我们同步时,在class.class上获得了一些静态方法锁,那么class.class代表了什么,通过谷歌搜索和阅读一些论坛,我了解了它的java.lang.Class实例,对于内存中的所有类,都存在一个与它们关联的java.lang.Class实例。是吗??
你可以用它创建这个类的对象,并在这个对象上获得锁,除此之外,它提供了在我的常规java应用程序中有用的所有主要功能?
欢迎任何参考链接。谢谢!!
发布于 2012-07-24 22:09:19
java.lang.Class的...its实例,对于内存中的所有类,都存在一个与它们相关联的java.lang.Class实例。
基本上,是的,尽管我认为它是每个类加载器一个拷贝,而不是全部拷贝。但是因为你通常只有一个类加载器...
Class实例将类表示为一个整体,与其他类不同,就像类的实例与该类的所有其他实例不同一样。因此,由于静态方法特定于类(就像非静态方法特定于实例一样),因此在调用静态方法时在类实例上进行同步是有意义的(如果该方法需要同步)。这就是为什么JLS说,如果将synchronized关键字作为一个整体应用于方法,就会发生这种情况。
https://stackoverflow.com/questions/11632585
复制相似问题