3

到目前为止,我们工作中的纯桌面产品一直使用 JDK 1.4.2(产品附带的也是 1.4.2 JRE)。我试图说服管理层让我们升级到更新的版本,以获得性能、API/功能和开发人员舒适度的好处。

由于 1.5 已经到了 EOL 过渡,我正在考虑直接升级到 1.6.0_10(选择更新 10,因为它是主要的)。就代码而言,所有编译错误只是enum我重命名的变量名,并且产品运行良好。

问题是

  • 是否推荐/罚款此升级,即跳过 1.5 ?有什么问题吗
  • 如果是,那么我应该升级到 1.6u10 还是可用的最新 1.6?

谢谢

4

9 回答 9

5

我会说,如果您要进行升级,那么请选择最新的更新。实际上,您可能会在 1.6 中获得一些免费的性能提升,我知道自 1.4 以来已经进行了一些 JVM 改进。

于 2009-09-23T15:57:13.937 回答
3

一般来说,Java 在向后兼容方面相当不错。

如果需要了解 Java 平台从 1.4 到 6 的变化,以下是 Sun 为每个版本列出的变化列表:

于 2009-09-23T16:00:33.173 回答
2

任何特定版本都有可能包含影响您的错误,或者您的代码依赖于已更改的标准 API 类的某些未指定行为,但总的来说,建议升级到最新的 Java 版本并且相对轻松。您当然应该在新的 JRE 上广泛测试该产品。

于 2009-09-23T15:57:41.977 回答
0

它是 Java,它不是一种肮脏的脚本语言,它会在每个小版本中更改其句法、语法和 API。

向后兼容是 Java 的主要特性之一。

于 2009-09-23T15:57:33.593 回答
0

刚刚从 1.3 到 1.6 做到了(Swing 应用程序):)

工作(根据 UAT 测试)完全没问题(除了 awt UI 所需的一些更改)。PTE 显示出一些内存消耗减少(不多),并且服务器端的工作速度更快(我倾向于认为这是由于 GC 改进和字符串 intern())。

无论如何,因为EOL,你必须这样做,1.6和1.5没有太大区别。所以我肯定会说1.6。

于 2009-09-23T15:58:16.050 回答
0

我建议在 1.5 上升级到 Java 6。由于无论您选择哪种版本,都需要针对新的 JRE 测试您的应用程序,因此您不妨利用这个机会。而不是增加您的升级两次(一次用于 1.5 和更高版本的 1.6)并需要两次测试周期,您可以将其排除在外一次。当您使用它时,升级到可用的最新版本会非常好。

于 2009-09-23T15:58:24.577 回答
0

是否推荐/罚款此升级,即跳过 1.5 ?有没有什么问题

我认为跳过 1.5 并直接进入 1.6 是一个好主意,并且绝对没有要求强制你通过 1.5。

如果是,那么我应该升级到 1.6u10 还是可用的最新 1.6?

我会去最新的。实际上,我认为 1.6u16 是当前的主要版本

于 2009-09-23T16:13:51.097 回答
0

Swing 应用程序肯定会有不同版本的问题。我们每次升级都会遇到问题(从 1.3 升级到 1.4 和从 1.4 升级到 1.5,并且我们坚持使用 1.6 - 以及更多问题)。但是,没有理由花时间在 1.5 上。直接转到最新版本 1.6,转到 1.5 不会节省任何时间,您只会在 1.5 上花费大量时间测试,然后在将来的某个时间再次为 1.6 进行测试。跳到 1.6 更经济。

很多小修改修复了问题,所以坚持 1.6_u10 只是邀请问题。就 Swing 而言,u10 是一次重大升级(不像它的名字所暗示的那样),之后的几个版本解决了 u10 发布后出现的问题。

于 2009-09-23T18:39:39.133 回答
0

我们最近将我们的 Swing 应用程序(大量拖放)从 1.4 升级到 1.6 以获得并发设施,我们还没有看到一个由 Java 本身引起的问题。我们还希望使用 Nimbus 外观,因为 Windows 外观和感觉不像 Windows。

您应该向老板展示的杀手级功能是如何使用 jvisualvm 附加到应用程序以在出现问题时内省正在运行的程序。

于 2009-09-23T18:14:39.277 回答