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

当我第二次打开应用的时候,这个静态对象的值是什么?为什么?... 当我第二次打开应用的时候,这个静态对象的值是什么?为什么? 展开
 我来答
生活he家
推荐于2016-03-17 · 一个属于大家的搬运工
生活he家
采纳数:1536 获赞数:6828

向TA提问 私信TA
展开全部
可能是第一次赋的值,也可能是null

我们知道,在app打开时,会创建一个进程,然后初始化一个dvm的实例,负责类的加载释放 和 垃圾回收等。
换句话说,在进程创建之后,就会加载类,静态变量诞生了。
那何时释放?
当然是在类卸载的时候。同上面。在进程结束之前,静态变量就寿终正寝。
我们知道,Android中,你是不知道何时进程会被Kill。所以
1.不能保证静态变量会一直存在.(进程可能被Kill掉)
2.每次打开app时静态变量的值都是初始值(进程没有被kill掉所以静态变量保存的还是上次的值)。
而且,静态变量是不会被垃圾回收的,其对象一直保持引用,及ARC不可能是0。
所以要自己释放静态变量。
追问
哦。真的学习到了。不过,我有个疑问就是,当应用关闭的时候,应用的进程也不一定结束吗?
追答
是的啊  你没发现现在的手机都有一个清理缓存的功能吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式