在maven的文档中写了
https://maven.apache.org/plugins/maven-compiler-plugin/
"另请注意,目前默认的源设置为1.5和 默认目标设置为1.5,与您运行Maven的JDK无关 用。如果要更改这些默认值,则应设置source和 如设置Java的-source和-target中所述的目标 。编译器"
我们使用的java版本是java 7。
如果我将目标settigs更改为1.7会有什么好处?
代码运行得更快吗?
内存使用量会减少吗?
答案 0 :(得分:4)
Java 7意味着JDK / JRE 1.7。但是,真正的名称是Java 7(1.X是从5之前遗留下来的旧命名约定和/或是指内部版本号)。
目标版本意味着您编译字节码以符合特定Java版本的规范(支持的功能)。因此,如果要编译将在运行java 1.6 JVM的计算机上运行的代码,则需要编译针对Java 1.6的代码,并且您应该将自己限制为可用于java 1.6的语法/选项。
否则您将获得java min / max版本。内存使用情况取决于运行代码的实际JVM以及它是服务器JVM还是标准JVM。
通常,您应该针对目标计算机JVM支持的目标而不是更高目标。您的代码也必须不使用在比您的目标版本更高版本中引入的功能(例如1.6中的钻石运算符,因为它是在1.7)中介绍。
更新:关于命名约定:
看看http://en.wikipedia.org/wiki/Java_version_history。
非常有趣的是,实际上Java 5之后的命名约定从1.5改为5.
代号虎。最初编号为1.5,仍然用作 内部版本号。数字改为"更好地反映了 J2SE的成熟度,稳定性,可伸缩性和安全性。"
答案 1 :(得分:2)
编译器几乎不做任何优化,你使用的版本几乎没有性能差异。
主要区别在于不同版本中可用的功能。 Java 8具有比Java 7更多的功能,Java 7具有超过Java 5.0的功能。如果您想使用更新的功能,则需要更新的版本,但如果您只使用旧版本,则会在运行时对性能产生影响。
运行代码的JVM决定了性能。通常,较新的版本执行得更好,但Java 8可能会或可能不会比Java 7更快,因为它是新的。一旦它出来一段时间它可能比Java 7更快。