【发布时间】:2017-10-20 05:48:12
【问题描述】:
我是 Kotlin 的新手,我喜欢 Android 的新语言,但我害怕在生产中使用它并意外导致内存泄漏,是否有任何新的 Kotlin 开发人员指南显示什么会导致内存泄漏,什么有防止它的解决方案吗?
【问题讨论】:
标签: java android memory-leaks jvm kotlin
我是 Kotlin 的新手,我喜欢 Android 的新语言,但我害怕在生产中使用它并意外导致内存泄漏,是否有任何新的 Kotlin 开发人员指南显示什么会导致内存泄漏,什么有防止它的解决方案吗?
【问题讨论】:
标签: java android memory-leaks jvm kotlin
Kotlin 与 Java 或任何其他基于 JVM 的语言在相同的 JVM 上运行。因此,它使用与 Java 相同的垃圾收集器,提供一般内存泄漏安全的运行时环境。
尽管如此,内存泄漏仍然是可能的。此类泄漏的一个常见来源是持有对象引用比必要的时间更长——有时是永远! — 导致内存泄漏。针对此类泄漏的一些常见做法是:
当您不再需要它们时,请务必将您的 nullable references 设置为 null。这主要适用于全局/静态变量;当对象自然超出范围时,您不必担心(例如,函数内的局部变量)。
使用 weak references。这是一个有点高级的功能,使您能够通知 GC 在某些条件下应该自动处理给定的引用(即 GC 为您将其设置为 null)。
您现在可能已经猜到了,这些完全相同的问题/实践同样适用于 Java 代码。
有几家主要开发人员已经将 Kotlin 用于他们的生产 Android 应用程序(例如,Pinterest、Basecamp、Square、Trello 等)。所以请放心,你们相处得很好;)
【讨论】: