Java static 关键字详解

来源:互联网 发布:光盘刻录软件nero 编辑:程序博客网 时间:2024/06/02 04:12

我对Java中的关键字 static 的理解

pre-conditions

static 修饰的变量、常量,会优先加载;并且它们存放在一个特殊的内存区域: 静态区 。众所周知,Java 中动态变量 对象(只有 new 的时候才会创建新的对象)存放在 HEAP 中,本地变量,方法的参数存放在 Stack 中。所以当方法出栈时,本地变量,方法中的参数自然就消失了,必要的时候对象会由GC回收。 static 修饰的变量、常量会存在相当长的时间。Java中没有 全局变量 的概念,利用关键字 static 可以实现一个伪全局变量的概念。

在Java中被 static 修饰的变量,常量,方法,不依赖于实例,它们可以通过 ClassName 来直接调用它们。同时被该类所有的实例共享。任何一个实例对它的修改都会导致其他实例的变化。

使用

  • 可以用在获取特定的实例上面,将一个类的引用放到静态区。当创建对象时,将对象赋值给该类静态引用,当对象销毁时,将 null 赋值给该类静态引用。这个类最好设置成单例模式,如果是Android中的Activity,则设置LaunchMode即可。