关于Java中被static修饰的静态变量 (类变量)

  首先Goo某的翻译, static :(adj) 静止的,不变的。this

  在全部程序编译运行的过程当中,变量都是由系统自动分配内存进行存储的。spa

  在这个存储过程当中,static所修饰的变量(也就是静态变量),它所被分配的空间是一直伴随程序运行的,空间将会保持到程序的结束关闭,才会被释放。翻译

  换句话说:程序运行时,系统分配给静态变量的内存是一直存在的,除非程序被终止。code

  根据这一点来看,倘若在定义一个类的过程当中,定义了一个static修饰的变量,那么这个类在被加载的同时,被static修饰的变量就存在于内存当中了,这样一来就独立于该类的全部对象,被该类全部对象共享,将对象相关的变成了类相关,因此静态变量也能够称之为类变量。对象

  假设一个类中某个属性被static所修饰,那么就能够经过"类名.属性名"来访问。blog

  例子:内存

 1 public class Demo{
 2     public static void main(String[] args){
 3         Worker w1 = new Worker("Jack");
 4         w1.startWork();
 5         System.out.println("当前开工的总人数:"+Worker.totle);
 6         Worker w2 = new Worker("Rose");
 7         w2.startWork();
 8         System.out.println("当前开工的总人数:"+Worker.totle);
 9     }
10 }
11 
12 class Worker{
13     String name;
14     static int totle = 0;
15 16 public Worker(String name){ 17 this.name = name; 18 } 19 20 public void startWork(){ 21 totle++; 22 System.out.println("工人:"+this.name+"开工了。"); 23 } 24 }

  运行结果:编译

  值得注意的一点是:例子中的实例变量name是在建立对象时,经过构造器初始化的。class

  而被static修饰的类变量totle在类的加载过程当中,就被初始化的。变量

相关文章
相关标签/搜索