静态变量与实例变量的区别

时间:2022-08-27 04:49:53

  语法定义上区别:被static修饰的变量称为静态变量或者类变量。没有被static修饰的对象称为实例变量 

  程序运行上区别:只有创建实例对象后,其中的实例变量才会被分配空间,才能使用这个实例变量。但是静态变量不属于不属于某个实例对象,而是属于类,所以也称类变量。只要程序加载了类的字节码,不用创建任何的实例对象,静态变量就会被分配空间,就可以被使用了。总的来说,实例变量必须创建对象后才可以通过这个对象来使用,而静态变量则可以直接通过使用类名来使用!

  举个例子:

  public  class Test{

  public static int gg = 0;

  public int kk = 0;

  public Test()

  {

    gg++;

    kk++;

    System.out.println("gg="+gg+",kk="+kk);

  }

  }

  上面的例子中:无论创建多少个实例对象,永远只分配一个gg变量,并且每创建一个实例对象,这个gg就会加1(注意只是它的值加1哦);但是每创建一个实例对象,就会分配一个kk,即可能分配多个kk,并且每个kk的值都自加一次。