为什么java vitural机器规范仍然是1999版

Ben*_* Xu 2 java jvm

jvm规范版本2:http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html 似乎很老了.

java已发布新版本,相当多变化.java 5,java6 ..

但似乎jvm规范保持不变.

这是否意味着它已经过时了?或者新的java语言功能只是不改变jvm规范.甚至很多已经引入了例如1.5中的泛型,并发和jvmti?

或者是因为jvm只与运行类文件有关,并且类文件没有改变,如何运行它们的规范没有改变?

我对这个话题有点困惑.

Voo*_*Voo 5

你只是看起来不够好;)但我同意这是非常不直观和有问题的.请参阅此处了解规范的更改.但请注意,例如,泛型是以不需要更改JVM的方式实现的,因此对规范的更改没有太多必要.

虽然我不确定上面的列表是否完整(实际上我认为Java7中对switch语句的更改必须在JVM级别上进行处理,因为这需要一种与当前两种解决方案完全不同的方法)和总的来说,我同意拥有包含所有澄清和补充的规范的最新版本确实非常好.

PS:我认为JVM本身的最大变化是使用Java5对内存模型的更改(即提供易失性读/写获取/释放语义).

  • 打开字符串不需要VM支持,这些是由编译器(与类库一起)实现的. (3认同)