Fan*_*Mex 3 android garbage-collection object kotlin
如果我们有一个这样的对象
object Repo { var activeMovies: ArrayList<Movie>? = null }
Run Code Online (Sandbox Code Playgroud)
然后我们这样称呼它来分配一个值
Repo.activeMovies = movieList
Run Code Online (Sandbox Code Playgroud)
实例化它的活动完成后,是否会收集垃圾?
我知道这可能是一个非常基本的问题,但是如果使用Kotlin中的object类型,我将无法理解其生命周期。
如果我们创建这样的对象:
object Test {
// some functions and properties
}
Run Code Online (Sandbox Code Playgroud)
并将其反编译为Java,我们将看到以下代码:
public final class Test {
public static final Test INSTANCE;
static {
Test var0 = new Test();
INSTANCE = var0;
}
}
Run Code Online (Sandbox Code Playgroud)
从反编译的代码中,我们可以看到object创建了Singleton。初始化发生在静态块上。在Java中,静态块在类加载时执行。Test类的实例是在类加载器加载类时创建的。这种方法保证了延迟加载和线程安全。单例对象的实例保存在该对象类内的静态字段中。因此,它不符合垃圾收集的条件。的Test是一个单件,它的寿命是只要一个应用程序的寿命。
以下是一些有关静态变量的有用信息,即Android静态对象生命周期和返回到应用程序时的静态变量null。
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |