我对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有关吗?