繁体   English   中英

使用JDK 7与使用符合编译器遵从级别1.7的JDK 8有什么区别?

[英]What is the difference between using JDK 7 vs using JDK 8 with compiler compliance level 1.7?

我想知道在JDK 8下运行/构建软件以及使用编译器遵从级别1.7与JDK 7作为系统默认值是否有区别? 我对参考Android构建,构建应用,Eclipse,Android Studio等感兴趣。

是的,JDK 1.8中有许多新类,例如java.time类。 如果您使用JDK 1.7构建,则不会得到这些。 但是如果您在编译器符合级别1.7的JDK 1.8中进行构建,则可以使用它们。

是的,在JDK 8下运行/构建软件与使用编译器兼容级别1.7与JDK 7作为系统默认值之间有区别。

  1. 在JDK 8下运行软件并使用编译器符合级别:您在jdk 1.7中进行编译,但在1.8上运行。 没问题,您的程序将根据需要运行。

  2. JDK 7作为系统默认值:您在1.7版本中编译并在相同版本上运行。

我想知道您要使用第一种情况吗?

卡车实际的负载差异。 对于JDK,合规性级别是编译器的指令,专门针对您指定的版本使用优化和链接功能。 它的功能还有很多,但我不认为您想知道。 新的JDK版本带来了新功能,并且在构建类文件或源Java文件的汇编代码时,这些版本的编译器能够理解和链接这些功能。 因此,这些JDKS中的JVM运行时也可以处理此类优化和案例并进行处理。 因此,如果没有合规级别,则使用JDK8生成的类文件只能在基于JDK8的运行时中正确运行。 他们可能不会使用JDK7或6。这样做是为了解决此问题,从而使您的JDK8编译代码可以在JDK8,7甚至6上运行,因此需要为编译器指令添加符合性级别。 缺点是您可能无法使用编译器提供的一些最新功能,但是这种情况很少,并且超出了对互操作性和可移植性的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM