java二进制类格式规范的更改

时间:2013-03-17 14:23:05

标签: jvm bytecode

互联网上是否存在多年来以jvm字节码(或类格式)规范更改的内容列表?

例如,我知道自类文件版本49.0和51.0以来,有一些新属性被添加到类中。此外,ldc*指令支持自49.0以来的更多参数。是否有完整的此类更改列表?

1 个答案:

答案 0 :(得分:2)

您可以比较不同版本的JVM规范。

不幸的是,我不知道任何地方干净地列出了所有的差异,但你可以通过环顾here来获得一个想法。对于版本1.5和1.6,更改以红色突出显示。

我认为添加的主要内容是支持Java语言中的新功能的可选属性 - anotations,enums,内部类,泛型等。 51.0还加入了所有与invokedynamic相关的东西。 50.0添加了在51.0中强制使用的StackMapTable。此外,50.0删除了jsr / ret指令。

IIRC ldc可以加载从50.0开始的Class常量和从51.0开始的MethodType常量