簡體   English   中英

“java.lang.Class”類的對象在哪里

[英]Where do objects of "java.lang.Class" class reside

我搜索了很多但找不到java.lang.Class類的對象所在位置的答案 - 是堆還是元空間/永久代。 我自己的理解是java.lang.Class的對象代表類元數據,因此它們應該駐留在 Metaspace(或 PermGen for pre-Java8)上。

有人可以確認一下嗎,我需要一些明確提到相同內容的官方文件。

恕我直言, java.lang.Class類的對象不能被視為類元數據。 類元數據只不過是 JVM 對 Java 類的內部表示——基本上,當 JVM 加載.class文件時,它不會存儲該.class文件中存在的所有字節碼,而是創建一個內部數據結構來保存該 .class 文件所需的所有內容.class文件,並將其存儲在 Metaspace 或 PermGen 中。

因此,根據我的知識,我會說java.lang.Class類的對象將駐留在堆上,而java.lang.Class類的類元數據將駐留在 Metaspace 或 PermGen 上。 但是,我無法提供關於我聲明第一部分的任何官方文檔,第二部分的官方文檔可以在此處閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM