作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
JVM热点实现中的Klass
& KlassKlass
是什么?
据我了解 Presenting the Perm Generation , Klass
是 Java 类的内部表示(比如 A
),它将包含有关类结构的基本信息,包括字节码。它将作为对象本身存储。 A 类的每个对象都有一个指针,指向 PermGen 中存在的内部表示 Klass
KlassKlass 是 Klass
类本身的内部表示。为什么需要KlassKlass
?它存储了哪些额外信息?
另外,一个KlassKlass的
Klass
指针指向自己,我也没看懂。
最佳答案
Permanent Generation a.k.a permgen 是指存储所有类相关信息的地方。它有时被称为方法区。
我们以下面的代码为例:
public class Parent
{
...
}
这里:
new Parent()
是 Parent
的对象类。(new Parent()).getClass()
指Klass
的 parent 。此对象的引用类型为 java.lang.Class<Parent>
.这将存储有关 Parent
的信息的注解、构造函数、字段、方法、继承(父类(super class)、接口(interface))等(new Parent()).getClass().getClass()
.此对象的引用类型为 java.lang.Class<java.lang.Class>
.这定义了关于 java.lang.Class
的信息。的注解、构造函数、字段、方法、它的继承(父类(super class)、接口(interface))等。理论上,这条链可以继续,但 KlassKlassKlass 与 KlassKlass 相同。
简而言之,KlassKlass 意味着您将拥有一个 java.lang.Class
定义 java.lang.Class
行为的对象自己。
希望对你有帮助
关于java - 什么是克拉斯和克拉斯克拉斯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16721021/
我是一名优秀的程序员,十分优秀!