本着乔尔提到的最新播客的精神,他想要一些简单的问题和可能有趣的答案......
在我们今天必须编程的环境中,我们不能依赖语言语句的执行顺序。真的吗?我们应该担心吗?
30 GOTO 10 总是会转到 10 吗?*
*我没有故意使用 20 ;)
[编辑] 对于投票结束这个问题的四个人......
“运行时编译器使用分析信息来帮助优化正在编译的代码。JVM 被允许使用特定于执行的信息以生成更好的代码,这意味着在一个程序中编译方法 M 可能会生成与在一个程序中编译 M 不同的代码其他”
(来自 Java 并发实践,2006,Goetz 等人)
..看看“单态调用转换”
[编辑]
和另一个编辑,你的处理器被允许交换语句的执行顺序......