美文网首页Android
Android开发慎用Static变量

Android开发慎用Static变量

作者: 眼角的伤痕 | 来源:发表于2018-08-17 22:43 被阅读559次

Android开发慎用Static变量
static变量在类加载时被初始化,存储在JVM的方法区中,整个内存中只有一个static变量的拷贝,可以使用类名直接访问,也可以通过类的实例化对象访问,一般不推荐通过实例化对象访问,通俗的讲static变量属于类,不属于对象,任何实例化的对象访问的都是同一个static变量,任何地放都可以通过类名来访问static变量。

基于以上的特性,在Android中通过static变量或者static函数来作为数据传输或作为更新UI的接口,使用起来很便捷,但是存在很大隐患。首先static变量会在类卸载的时候销毁,类卸载最常见的场景是进程销毁,在Android中进程销毁场景更常见。特别是在Activity、Service等组件中定义的static更容易被回收,出现空指针异常。一般将使用的static变量定义在Application中,由于Application生命周期最长,所以static变量相对更安全,但也有不可靠的情况,所以在Android中要谨慎使用静态变量,特别是在Activity和Service等组件中。 一般是能用静态变量的尽量用单例代替,使用static的场景一般是定义常量( final static int a=1),和定义单例(private static SigleTon instance)的时候。

相关文章

网友评论

  • markRao:Application放静态变量?这厉害了

本文标题:Android开发慎用Static变量

本文链接:https://www.haomeiwen.com/subject/mqhxiftx.html