Kotlin的Float,Int等被优化为JVM中的内置类型吗?

我是Kotlin的新手,AFAICT的语法只支持Int,Float等对象版本,没有Java的相应int和float原语。 但是,如果可能的话,编译器或JVM是否优化使用原始类型? 我担心,如果我在一个从游戏主循环调用的函数中使用局部变量,那么如果JVM每次都要创建一个对象而不是使用原始类型,则可能会导致GC口吃。

引用文档 :

一些类型可以有一个特殊的内部表示 – 例如,数字,字符和布尔值可以在运行时表示为原始值 – 但对于用户来说,它们看起来像普通的类。 在本节中,我们将介绍Kotlin中使用的基本类型:数字,字符,布尔值,数组和字符串。

所以是的,编译器会在运行时使用JVM基元类型进行优化。 当然有一些例外:

在Java平台上,除非我们需要一个可为空的数字引用(例如Int?)或涉及泛型,否则数字在物理上存储为JVM基本类型。 在后者的情况下,数字是盒装的。

源文档中还有一个提示,例如Int

表示一个32位有符号整数。 在JVM上,这种类型的非空值被表示为基本类型int的值。