Java中static变量的说明

static 变量
 static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
  static成员变量的初始化顺序按照定义的顺序进行初始化。

class X028{
  static int i;
  int j;

  public static void main(String[] args) {
    X028 x1=new X028();
    X028 x2=new X028();
    x1.i=3;
    x1.j=4;
    x2.i=5;
    x2.j=6;
    System.out.println(
        x1.i+"  "+x1.j+"  "+x2.i+"  "+x2.j
    );
  }
}

x1.i和x2.i都是对静态变量的初始化,静态变量在内存中只有一个副本,随着初始化的顺序进行初始化。
在这段代码中i变量被初始化两次,static变量以最新的一次初始化值为输出值,所以本代码输出值两次的x1.i和x2.i都是5.

你可能感兴趣的