gpt4 book ai didi

garbage-collection - Kotlin 的 Float、Int 等是否针对 JVM 中的内置类型进行了优化?

转载 作者:行者123 更新时间:2023-12-02 12:48:29 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Are Kotlin data types built off primitive or non-primitive Java data types?

(2 个回答)


4年前关闭。




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

最佳答案

引用 docs :

Some of the types can have a special internal representation - for example, numbers, characters and booleans can be represented as primitive values at runtime - but to the user they look like ordinary classes. In this section we describe the basic types used in Kotlin: numbers, characters, booleans, arrays, and strings.



所以是的,编译器确实以 JVM primitive types 的方式进行优化。在运行时使用。当然也有一些异常(exception):

On the Java platform, numbers are physically stored as JVM primitive types, unless we need a nullable number reference (e.g. Int?) or generics are involved. In the latter cases numbers are boxed.



源文档中也有提示,例如 Int :

Represents a 32-bit signed integer. On the JVM, non-nullable values of this type are represented as values of the primitive type int.

关于garbage-collection - Kotlin 的 Float、Int 等是否针对 JVM 中的内置类型进行了优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47080723/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com