首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该总是用最新的javac编译器编译Java代码吗?

我应该总是用最新的javac编译器编译Java代码吗?
EN

Stack Overflow用户
提问于 2017-01-05 11:39:11
回答 2查看 256关注 0票数 2

我将把tomcat的安装从6.0升级到8.5,并将JVM从6升级到8。我们的java代码现在是用java 6编译的。

我知道在最新的JVM上运行java代码总是一个好主意--性能方面(更不用说安全性方面)。这样,与JVM 6相比,使用java1.6编译的一些代码在JVM 8上可能运行得更快。

但是编译怎么样?通过用java 8编译器编译用java 6编写的代码(即只使用java 6特性),您会得到什么好处吗?也就是说,当用java 8(目标8)而不是java 6编译代码时,用Java1.6编写的代码在JVM 8上运行得更快吗?与java 6相比,java 8的字节码优化了吗?

关于目标旗。与用java 6编译器编译java 6代码相比,用java 8编译器编译java 6代码(当代码仍然要在JVM 6上运行时)有什么好处吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-29 17:19:17

与用java 6编译器编译java 6代码相比,用java 8编译器编译java 6代码有什么好处吗?

不是的。

性能绝对没有提高,因为java编译器不执行任何类型的优化,甚至不执行明显的优化。

任何可以在javac生成的字节码上执行的优化都是在应用程序运行后由JIT引擎完成的。

编辑:看看pveentjer的评论,一些简单的优化(例如常数解析)是由javac执行的。但我仍然相信,关于6和8之间的差异的答案仍然是“否”。

票数 2
EN

Stack Overflow用户

发布于 2017-01-05 11:50:09

正如您已经知道的,使用Java语言的最新版本编译Java代码并不是真正的需求。这取决于你。

应考虑的共同要点:

  • 依赖库和框架的兼容性问题
  • 目标JVM版本上的兼容性问题/不支持的二进制版本
  • 较新的Java版本中已知的性能(或其他改进)。
  • 向后兼容性--用较新的Java (例如8)编译的代码可能并不总是能够在较旧的JVM (例如6)上执行。

我将(并鼓励您)检查发行说明,看看在新JVM版本中引入了哪些更改、改进、兼容性约束等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41484117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档