我是Kotlin的新手,我喜欢Android的新语言,但我很害怕在生产中使用它并导致内存泄漏意外,是否有任何指导新Kotlin开发人员显示可能导致内存泄漏的内容,什么是预防它的解决方案吗?
答案 0 :(得分:5)
Kotlin在与Java或任何其他基于JVM的语言相同的JVM上运行。因此,它使用与Java相同的垃圾收集器,提供通常的内存泄漏安全运行时环境。
然而,内存泄漏仍然是可能的。这种泄漏的常见原因是持有的物体参考更长而不是必要 - 有时永远! - 导致内存泄漏。针对此类泄漏的一些常见做法是:
请务必在不再需要 nullable references 时将其设置为null
。这主要适用于全球/静态变量;当一个对象自然超出范围时你不应该担心(例如,一个函数内的局部变量)。
使用 weak references 。这是一个稍微高级的功能,使您能够通知GC在特定条件下应自动处理给定参考(即GC将其设置为null
)。
正如您现在可能已经猜到的那样,这些完全相同的问题/实践也适用于Java代码。
有几个主要的开发人员已经在他们的生产 Android应用程序中使用Kotlin(例如,Pinterest,Basecamp,Square,Trello等)。所以请放心,你是一个很好的公司;)