用java6而不是java7编译有什么缺点吗?

用java6而不是java7编译有什么缺点吗?,java,java-7,backwards-compatibility,java-6,Java,Java 7,Backwards Compatibility,Java 6,如果我用Java7JDK编译,我会得到一个jar,它在java7中运行良好,但在java6中显然无法加载。如果我使用java7jdk编译,但指定输出与java6兼容,那么它在java6jre和java7jre上都可以正常运行 我的问题是,对于在Java7JRE中运行,第一个jar是否比第二个“更好”(更快、更高效、更优化)?Java7JRE的用户使用第二个jar有什么缺点吗?或者第二个jar是否足够好,每个人都可以使用 我的理由是,我希望结果对java7用户尽可能好,但我需要一些可以在java6

如果我用Java7JDK编译,我会得到一个jar,它在java7中运行良好,但在java6中显然无法加载。如果我使用java7jdk编译,但指定输出与java6兼容,那么它在java6jre和java7jre上都可以正常运行

我的问题是,对于在Java7JRE中运行,第一个jar是否比第二个“更好”(更快、更高效、更优化)?Java7JRE的用户使用第二个jar有什么缺点吗?或者第二个jar是否足够好,每个人都可以使用


我的理由是,我希望结果对java7用户尽可能好,但我需要一些可以在java6上运行的东西。那么我需要提供两个JAR还是只提供一个java6?

显然,如果您在java6上编译和运行代码,您就不能使用添加到Java7中Java标准库中的类,因为这些类在java6上不会出现


对于其他人来说,根本没有实际的区别。几乎所有的优化都是在运行时由JVM和JIT完成的;Java编译器几乎没有进行任何优化。

如果不使用Java 7中的新API,我认为没有什么不同。对此我不是100%肯定,我认为如果您的程序是使用Java 6编译的,它仍然会从运行Java 7 VM的人的速度提升中受益。

但是我注意到jar文件大小不同,尽管在其他方面代码和设置相同,所以我猜它以不同的方式表示代码,也许是为了利用java7的特殊功能?我的记忆力很好;我相信我记得读过一篇关于jar工具在Java 7中通过修复一个愚蠢的错误进行重大优化的文章……如果你想知道实际字节码是否不同,你可以使用
javap
工具分解你的类文件并对它们进行比较。除非你想使用Java 7中引入的新功能,我看不出有任何理由担心,代码会运行得很好。不,没有新特性(我希望在这种情况下我会看到编译问题)。是的,它在java6上运行良好。我只是不想对java7用户有任何不利之处。别担心,它会起作用的。我有在Java 6上编译的代码,它在Java 7上运行。