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

Jvm java二进制类格式规范的更改,jvm,bytecode,Jvm,Bytecode,互联网上有没有列出多年来jvm字节码(或类格式)规范中发生变化的内容 例如,我知道自从类文件版本49.0和51.0以来,类中添加了一系列新属性。而且ldc*指令支持49.0以来的更多参数。是否有此类更改的完整列表?您可以比较不同版本的JVM规范 不幸的是,我不知道有哪一个地方能清楚地展示所有的差异,但你可以通过环顾四周来了解。对于版本1.5和1.6,更改以红色突出显示 我认为添加的主要内容是可选属性,以支持Java语言中的新特性—变量、枚举、内部类、泛型等等。51.0还添加了所有与invoked

互联网上有没有列出多年来jvm字节码(或类格式)规范中发生变化的内容


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

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

不幸的是,我不知道有哪一个地方能清楚地展示所有的差异,但你可以通过环顾四周来了解。对于版本1.5和1.6,更改以红色突出显示

我认为添加的主要内容是可选属性,以支持Java语言中的新特性—变量、枚举、内部类、泛型等等。51.0还添加了所有与invokedynamic相关的内容。50.0添加了StackMapTable,这在51.0中是强制性的。此外,50.0删除了jsr/ret指令

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