Java 中静态变量和实例变量区别

£神魔★判官ぃ 2022-06-08 12:07 383阅读 0赞

Java 中静态变量和实例变量区别

  • 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。
  • 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

在程序运行时的区别:

  • 实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
  • 静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。

总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

例如,对于下面的程序,无论创建多少个实例对象,

永远都只分配了一个 staticInt 变 量,并且每创建一个实例对象,这个 staticInt 就会加 1;但是,每创建一个实例对象,就会分配一个 random,

即可能分配多个 random ,并且每个 random 的值都只自加了1次。

  1. public class StaticTest {
  2. private static int staticInt = 2;
  3. private int random = 2;
  4. public StaticTest() {
  5. staticInt++;
  6. random++;
  7. System.out.println("staticInt = "+staticInt+" random = "+random);
  8. }
  9. public static void main(String[] args) {
  10. StaticTest test = new StaticTest();
  11. StaticTest test2 = new StaticTest();
  12. }
  13. }
  14. 执行以上程序,输出结果为:
  15. staticInt = 3 random = 3
  16. staticInt = 4 random = 3

总结如下:

Java语言支持的变量类型有:

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。

通俗解释为:

类变量是,整个类共用的,也就是我们说的 static 变量。
实例变量,当然就是实例的字段,也就是非 static 的字段。
局部变量就是参数或方法或 for { } 里面定义的变量。

发表评论

表情:
评论列表 (有 0 条评论,383人围观)

还没有评论,来说两句吧...

相关阅读

    相关 静态变量实例变量区别?

    在Java中,静态变量和实例变量是两种不同的变量类型,它们有以下的区别:   1.静态变量属于类,而不是类的任何实例。实例变量属于类的实例。   2.静态变量只有一个副本,

    相关 静态变量实例变量区别

    ①在语法定义上的区别:静态变量前要加static关键字,而实例变量(成员变量)不需要。 ②在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才