有关内部锁和同步的Oracle
Java文档说:
You might wonder what happens when a static synchronized method is
invoked,since a static method is associated with a class,not an
object. In this case,the thread acquires the intrinsic lock for the
Class object associated with the class. Thus access to class’s static
fields is controlled by a lock that’s distinct from the lock for any
instance of the class.
我没有完全理解Class对象的概念.在了解了一些在线内容之后,我了解到:
A Class object is sort of a Meta object describing the class of an object such as name,package etc.
我的问题是:
>什么时候创建?
>在某些时间收集垃圾吗?
>由于它是由synchronized static方法使用的,它是否意味着每个JVM只有一个Class对象的实例?
[更新]
在manouti提供的答案的评论部分中添加了一个新问题,因为他提到可以有多个Class对象实例:
>如果存在多个Class对象实例,是否有可能同时由多个线程访问静态同步方法?