正如标题所说。 我正在使用Java 12 SDK编译到Java 11 JRE。 当我这样编译时,它是否还在使用Java 12号的新垃圾收集器,还是被降级到Java 11号正在使用的任何东西?
垃圾收集器是JRE/JVM的一个实现细节。 如果您运行一个Java 11 JRE,您的程序将与该JRE的垃圾回收器一起运行。 就这么简单。
在编译时,您不知道您的应用程序将使用什么Java运行时运行。 听起来您是在编译您的应用程序,而不是JRE,使用类似于-release11
标志的内容来编译javaC
。
这意味着您可以使用Java 11运行时运行编译后的应用程序。 但是你也可以用Java 12运行时运行这个应用程序。