两者的差别肯定有,但是具体是什么样的我理解的还没那么深入。
如果用类的静态成员变量做全局变量,那么这个变量存储在类的class字节区,这个类的class字节存储在哪由JVM加载控制的,具体我也不大清楚,
如果用Application来做全局变量,则这个变量是Application对象的一个成员变量,存放在JVM的堆内存区。
至于使用哪种方式,效率上来讲应该都差不多。类的class文件加载到内存中去后,只有当进程(不是线程)关闭重启后才会重新加载,进程关闭了,则Application也肯定销毁了,而重新启动进程的话,也肯定会启动Application,所以都差不多。
但是又一定,如果是外部类的静态成员,这个类没被访问,则这个类的class不会被加载,从空间上讲放在外部类的静态成员较好,即需要的时候才去加载内容,
从维护角度来说的话,则更应该放在外部类的静态成员中。因为Application是一个全局对象,如果都把全局变量放里面的话,会导致这个类很难被维护,项目中通常是不让在Application中放太多东西的,除非这样做对系统的实现带来很大的方便。