类的对象驻"java.lang.Class"在哪里



我搜索了很多,但我找不到答案的地方做java.lang.Class类的对象驻留-它是堆或元空间/PermGen。我自己的理解是,java.lang.Class的对象表示类元数据,因此它们应该驻留在Metaspace(或java8之前的PermGen)上。

谁能确认一下,我需要一些明确提到这一点的官方文件。

IMHO,java.lang.Class类的对象不能视为类元数据。类元数据只是JVM对Java类的内部表示-基本上当JVM加载.class文件时,它不会存储.class文件中存在的所有字节码,而是创建一个内部数据结构,该数据结构持有.class文件所需的一切,并存储在Metaspace或PermGen中。

因此,根据我的知识,我会说java.lang.Class类的对象将驻留在堆上,java.lang.Class类的类元数据将驻留在Metaspace或PermGen上。但是,我不能提供关于我的声明的第一部分的任何官方文件,第二部分的官方文件可以在这里阅读。

相关内容

  • 没有找到相关文章

最新更新