我们的项目应用程序使用Java 5,现在当我更新Java 6时,存在某种与功能不一致的情况,并且看到这种效果,我们的经理通过了评论“Java是平台无关的,但依赖于版本” ,这是真的吗?
答案 0 :(得分:3)
新版本的Java将运行以前版本中编译的代码。因此,如果您在Java 5中编译代码,然后尝试在Java 6环境中运行它,它将运行。
如果在Java 6中编译,虽然它不能在Java 5环境中运行。
答案 1 :(得分:1)
根据Java SE Compatibility at a Glance:
Java平台,标准版 版本(Java SE)非常强大 兼容以前的版本 Java平台。每个版本 Java SE有向上 二进制兼容与前一个 版本,除了 中提到的不相容性 文档。 Java SE没有 支持向下的源兼容性, 但是:如果源文件使用new 语言功能或Java SE平台 API,它们不适用于 早期版本的Java平台。
文档描述了任何内容 兼容性问题 当前版本和版本 紧接在它之前。
因此,正如所写的那样,除了列出的不兼容性(被认为是次要的)之外,每个版本的Java SE都具有与先前版本的向上二进制兼容性。也就是说,没有人强迫你升级(只要支持不是问题)。如果您不想从新版本的新功能(如性能改进,API改进等)中受益,请不要这样做。但在我看来,这些好处一般都值得(次要)努力。检查一下自己。
答案 2 :(得分:0)
任何时候升级任何框架都可能会出现一些无法预料的变化,这就是为什么单元测试很重要,因为您可以运行测试并确保行为没有改变。
JDK6在任何时候都没有发挥作用。例如,看起来HashMap中的排序在两个版本之间会有所不同,但是,由于HashMap是无序的,这不是一个真正的问题,除非您期望订单是一致的。
答案 3 :(得分:0)
有时,新版本的Java会引入新的Java功能。但是,保持所有时间的向后兼容性是非常困难的,并且为较新版本的Java编写的代码不能用于旧版本的运行时环境。