我想问一个关于类和#34;机制"的问题,Java将它们加载到内存中,特别是关于静态字段和方法的创建。
一个类可能有静态字段和方法,可以在加载时从类本身调用,而无需创建类的实例。怎么回事?什么是"机制"它背后?
我知道当JVM需要加载一个类时,它会创建一个类对象,其中包含有关如何创建相应类的实例的元数据。但是当加载静态字段和方法时,例如它们是否被分配给类对象,作为回报,它为每个创建的新实例创建了它们的引用?这是什么解释了如何从类(无论在对象面向语言中可能意味着什么)以及它的每个实例调用静态方法?无论我多么努力,我都无法找到关于这件事情如何运作的答案。
最重要的是,有谁知道为什么Java允许从实例访问静态字段,以及"类本身" ??我的意思是什么概念。
事先感谢你们所有人。
答案 0 :(得分:0)
我认为你的意思是类加载和链接的概念。这里解释得非常好jvmspec
特别是
部分5.3。创建和加载
您也可以查看jvm architecture 。它更好地理解了用于存储类级信息的方法区域,例如静态变量和方法。