首页 > 解决方案 > 使用 Java 12 SDK 编译 Java 11 应用程序 - 我的应用程序是哪个版本的 java?

问题描述

正如标题所说。我正在使用 Java 12 SDK 编译为 Java 11 应用程序。当我这样编译下来时,它是否仍在使用 Java 12 的新垃圾收集器,还是降级为 Java 11 正在使用的任何垃圾收集器?

编辑:更新了我的问题以避免“JRE”

标签: java

解决方案


垃圾收集器是 JRE/JVM 的一个实现细节。如果您运行 Java 11 JRE,您的程序将使用该 JRE 的垃圾收集器运行。就那么简单。

请注意,您永远无法在编译时知道运行时将使用哪个垃圾收集器,因为即使在 Java 12 中,也有多个 JVM 实现(Oracle Hotspot、IBM),每个都有多个垃圾收集算法,它们的行为可以在启动时配置。因此,您不应该依赖垃圾收集器的任何行为,除了它收集垃圾的事实。


推荐阅读