Kotlin中可能导致内存泄漏的语言功能是什么?

我是Kotlin的新手,我喜欢Android的新语言,但是我很害怕在生产中使用它,并导致内存泄漏,是否有任何指导新的Kotlin开发人员显示可能导致内存泄漏,什么是解决方案预防呢?

Kotlin与Java或任何其他基于JVM的语言在相同的JVM上运行。 因此,它使用与Java相同的垃圾收集器 ,提供一个通常的内存泄漏安全运行环境。

尽管如此,内存泄漏仍然是可能的。 这种泄漏的一个常见的来源是持有的对象引用超过必要的时间 – 有时永远! – 导致内存泄漏。 这种泄漏的一些常见做法是:

  • 一旦不再需要,可以将空的引用设置为null 。 这主要适用于全球/静态变量; 当一个对象自然超出范围时,你不应该担心这个(例如,函数中的局部变量)。

  • 使用弱引用 。 这是一个稍微高级的功能,使您能够通知GC,在给定的参考条件下应该自动处理给定的参考(即,GC将它设置为null )。

正如您现在可能已经猜到的那样,这些完全相同的问题/实践也适用于Java代码。

有几个主要的开发者已经在使用Kotlin来生产 Android应用程序(例如,Pinterest,Basecamp,Square, Trello等)。 所以,放心吧,你们是在一个好的公司;)