Android 是不是;“对象”;在科特林收集垃圾

Android 是不是;“对象”;在科特林收集垃圾,android,object,kotlin,garbage-collection,Android,Object,Kotlin,Garbage Collection,如果我们有一个像这样的对象 object Repo { var activeMovies: ArrayList<Movie>? = null } 在实例化它的活动完成后,它是否得到垃圾回收 我知道这可能是一个非常基本的问题,但如果对象键入Kotlin,如果我们创建这样的对象,我无法理解生命周期: object Test { // some functions and properties } 并将其反编译为Java,我们将看到下一个代码: public final cla

如果我们有一个像这样的对象

object Repo { var activeMovies: ArrayList<Movie>? = null }
在实例化它的活动完成后,它是否得到垃圾回收


我知道这可能是一个非常基本的问题,但如果
对象
键入Kotlin,如果我们创建这样的对象,我无法理解生命周期:

object Test {
    // some functions and properties
}
并将其反编译为Java,我们将看到下一个代码:

public final class Test {
    public static final Test INSTANCE;

   static {
      Test var0 = new Test();
      INSTANCE = var0;
   }
}
从反编译的代码中,我们可以看到
对象
创建了一个单例。初始化发生在静态块上。在Java中,静态块在类加载时执行。
Test
类的实例是在类加载器加载该类时创建的。这种方法保证了延迟加载线程安全。单例对象的实例保存在该对象类内的静态字段中。因此,它不符合垃圾收集的条件。
测试
是一个单例,其寿命与应用程序的寿命一样长


下面是一些关于静态变量和变量的有用信息。

Awesome。谢谢你的解释。确实很有帮助。
public final class Test {
    public static final Test INSTANCE;

   static {
      Test var0 = new Test();
      INSTANCE = var0;
   }
}