说“Java与平台无关但依赖于版本吗?”是否正确?

时间:2009-10-23 01:32:27

标签: java

我们的项目应用程序使用Java 5,现在当我更新Java 6时,存在某种与功能不一致的情况,并且看到这种效果,我们的经理通过了评论“Java是平台无关的,但依赖于版本” ,这是真的吗?

4 个答案:

答案 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编写的代码不能用于旧版本的运行时环境。