小编典典

什么是Klass&KlassKlass

java

什么是KlassKlassKlass在JVM中执行热点?

据我从介绍Perm生成一文中所了解的,它Klass是Java类的内部表示(假设A),它将保存有关该类结构的基本信息,包括字节码。它将被存储为对象本身。A类的每个对象都有一个指向KlassPermGen中内部表示的指针

KlassKlass是Klass类本身的内部表示。为什么KlassKlass需要?它还存储哪些额外信息?

另外,有一个KlassKlass's Klass指向自己的指针,我也不明白。


阅读 444

收藏
2020-12-03

共1个答案

小编典典

永久生成(又称永久生成)是指存储所有与类相关的信息的位置。有时称为方法区域。

让我们以以下代码为例:

public class Parent
{
    ...
}

这里:

  • new Parent()Parent类的对象。
  • (new Parent()).getClass()Klass父母。该对象的引用类型为java.lang.Class<Parent>。这将存储有关Parent的注释,构造函数,字段,方法,其继承(超类,接口)等信息。
  • 克拉斯会是(new Parent()).getClass().getClass()。该对象的引用类型为java.lang.Class<java.lang.Class>。定义有关java.lang.Class的注释,构造函数,字段,方法,其继承(超类,接口)等信息。

从理论上讲,这条链可以继续下去,但KlassKlassKlass与KlassKlass相同。

简而言之,KlassKlass意味着您将拥有一个java.lang.Class定义其java.lang.Class自身行为的对象。

希望这可以帮助

2020-12-03