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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态变量与实例变量的区别相关的知识,希望对你有一定的参考价值。

  语法定义上区别:被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的值都自加一次。      

以上是关于静态变量与实例变量的区别的主要内容,如果未能解决你的问题,请参考以下文章

静态变量和实例变量的区别?

java 中静态变量(类变量)与实例变量区别

在java语言中,静态变量和普通变量有啥区别?

static修饰的静态变量与实例变量的区别,及其在初始化和内存中的运行机制详解

Java基础 -- 静态方法和实例方法有何不同无参构造函数有什么作用import java和javax有什么区别成员变量与局部变量的区别有哪些(成员变量有默认赋值)

静态变量和实例变量的区别?