Kotlin中哪些语言功能可能导致内存泄漏?

Met*_*lel 0 java android jvm memory-leaks kotlin

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

Pau*_*tos 5

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

然而,内存泄漏仍然是可能的.这种泄漏的一个常见原因是持有对象的引用不再超过必要-有时永远! - 导致内存泄漏.针对此类泄漏的一些常见做法是:

  • 请务必将设置为空的引用,以null尽快为他们不再需要.这主要适用于全球/静态变量; 当一个对象自然超出范围时,您不必担心(例如,函数内的局部变量).

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

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

有几个主要的开发人员已经使用Kotlin 生产 Android应用程序(例如,Pinterest,Basecamp,Square,Trello等).所以请放心,你是一个很好的公司;)

  • 基本上和Java一样 (2认同)