java - 什么是 java.lang.reflect.Field#slot?

标签 java reflection jvm openjdk jvm-hotspot

java.lang.reflect.Field#slot 是否按照字段在源文件中声明的顺序保存序列号?
我知道它是私有(private)的,我不应该使用它和其他东西,但无论如何......

最佳答案

Field.slot 含义是实现定义的。在 HotSpot JVM 中,它包含给定类的 VM 内部字段数组的索引。 slot 字段在创建 Field 对象时在 JVM 运行时设置,参见 reflection.cpp .

此索引不一定与 Java 源文件中的字段顺序匹配。它与对象头的字段偏移量无关。最好不要对 slot 的含义做任何假设。关键的意思是让 JVM 可以快速地将一个 java.lang.reflect.Field 对象映射到 Metaspace 中的内部 Field 表示。

关于java - 什么是 java.lang.reflect.Field#slot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47529744/

相关文章:

java - 逻辑错误帮助: LCG only returns even values

c# - 有没有办法对您的代码在 C# 中是否被混淆进行条件检查?

java - 是否可以在 java 中使用反射创建没有无参数构造函数的类的 'blank' 实例?

java - 调用 hashSet.clear() 后创建一个新的 HashSet 还是重用更好

java - 更改 TextView 字体时应用程序崩溃

java、xsd 和编码 : jre bug, 我的错还是 xsd 问题?

java - Kafka Streams 重新平衡高吞吐量 kafka-streams 服务上的延迟峰值

c# - 使用 Reflection.Emit 创建的动态程序集崩溃,退出代码为 -532462766

java - 内存不足,Java 运行时环境无法继续

java - Oracle JDK 7 和 JRE 7 认证系统配置的真正含义是什么?