Android:我在一个Application类中定义了一个静态对象,指向null,在第一次打开应用的时候给这个变量赋值

当我第二次打开应用的时候,这个静态对象的值是什么?为什么?

可能是第一次赋的值,也可能是null

我们知道,在app打开时,会创建一个进程,然后初始化一个dvm的实例,负责类的加载释放 和 垃圾回收等。
换句话说,在进程创建之后,就会加载类,静态变量诞生了。
那何时释放?
当然是在类卸载的时候。同上面。在进程结束之前,静态变量就寿终正寝。
我们知道,Android中,你是不知道何时进程会被Kill。所以
1.不能保证静态变量会一直存在.(进程可能被Kill掉)
2.每次打开app时静态变量的值都是初始值(进程没有被kill掉所以静态变量保存的还是上次的值)。
而且,静态变量是不会被垃圾回收的,其对象一直保持引用,及ARC不可能是0。
所以要自己释放静态变量。追问

哦。真的学习到了。不过,我有个疑问就是,当应用关闭的时候,应用的进程也不一定结束吗?

追答

是的啊 你没发现现在的手机都有一个清理缓存的功能吗

温馨提示:答案为网友推荐,仅供参考
相似回答