【发布时间】:2019-05-06 10:34:17
【问题描述】:
我对 java 字节码世界很陌生。我有一些涉及字节码的调试任务。在经历这些时,我注意到一些看起来可疑的值,但我不确定。这是完整字节码的一部分
// access flags 0x100A
private static synthetic $jacocoInit()[Z
GETSTATIC ClassUnderTest.$jacocoData : [Z
DUP
IFNONNULL L0
POP
LDC -1475355800743669619
LDC "ClassUnderTest"
BIPUSH 64
INVOKESTATIC org/jacoco/agent/rt/internal_1f1cc91/Offline.getProbes (JLjava/lang/String;I)[Z
DUP
PUTSTATIC ClassUnderTest.$jacocoData : [Z
L0
这里LDC -1475355800743669619是我关心的。到目前为止我学到的是,这是一个类中常量值的字段。
我很困惑LDC值是否可以为负?
我遇到的另一个问题是,在 JDK-8 中,同一类的 LDC 值为正,但在 JDK-11 中为负。所以我的问题是,它是否也依赖于 JDK?
【问题讨论】:
标签: java jvm bytecode jacoco java-11