java基础,之所以用static就是就是固定分配空间,避免其被收回,,,,

解决方案 »

  1.   

    静态变量在类被加载的时候分配内存,在进程结束的时候会被销毁。再进程运行的时候,只要你的static变量没有被销毁也没有置null,则不会被GC回收。
      

  2.   

    安卓的情况有点特殊:运行某个程序,然后长时间待机,再开时,之前的程序的静态变量可能会变成null,这个也是我最近才发现的;
    百度了一下,关于这个问题也是有不少人讨论的,比如这篇文章
    http://blog.csdn.net/zhangyue0503/article/details/7614944
    然后,网上的建议基本都是在自定义Application里存储静态变量
    但是,我觉得,这样代码太杂乱了,
    就想能不能怎么改进一下(为了编码更方便)
    为此我想弄清楚,什么情况下静态变量会被置空;final的变量会不会也变成null