Java 版本之间是否存在向后不兼容的具体示例?

Java 版本之间是否存在不兼容性,Java 源代码/Java 类文件针对 Java 版本 X 无法在版本 Y(其中 Y > X)下编译/运行?

Have there been incompatibilities between Java releases where Java source code/Java class files targeting Java version X won't compile/run under version Y (where Y > X) ?

Java 版本"是指以下版本:

By "Java release" I mean versions such as:

  • JDK 1.0(1996 年 1 月)
  • JDK 1.1(1997 年 2 月)
  • J2SE 1.2(1998 年 12 月)
  • J2SE 1.3(2000 年 5 月)
  • J2SE 1.4(2002 年 2 月)
  • J2SE 5.0(2004 年 9 月)
  • Java SE 6(2006 年 12 月)

家规:

  • 请尽可能提供参考资料和代码示例.
  • 请尽量在您的回答中非常具体/具体.
  • 被标记为@Deprecated 的类不算作向后不兼容.

推荐答案

各种版本的兼容性说明:

Compatibility notes for various versions:

  • Java 1.4
  • Java 5
  • Java 6
  • Java 7
  • Java 8

我记得的第一个重大问题是在 Java 1.4 中引入了 assert.它影响了很多 JUnit 代码.

The first major hiccup I remember was the introduction of assert in Java 1.4. It affected a lot of JUnit code.

相关文章