据我所知,每个类都有一个 Class
对象。我使用synchronize时有一种情况,例如:
public class A {
public static void main(String... args){
synchronize(A.class){
//do something...
}
}
}
这将锁定 A
的 Class
对象,对吗?这个 Class
对象是什么时候创建的?它是在 JVM 加载 A
类时创建的还是在我调用 A.class
时创建的?我在 JLS 中找不到详细信息,有人可以提供相关链接吗?
最佳答案
this will lock A's Class object, right?
是的。
my question is when this Class object is created? is it created at JVM load A class or when i call A.class?
当 ClassLoader 加载它时,它返回一个 Class
对象。
i can't find detail in JLS, could someone please provide the link about it, thanks.
我建议阅读 ClassLoader.loadClass() 的 javadoc
关于java - Class对象A是在JVM加载A类时创建的,还是我调用A.class时创建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819927/