美文网首页
JAVA类静态变量

JAVA类静态变量

作者: Stack1_e27c | 来源:发表于2019-12-09 16:36 被阅读0次

在JAVA语言中,变量分为两种,一种为大家经常熟悉使用的实例变量,另一种是由关键字static修饰的静态变量,静态变量属于类变量,不依赖于类声明的实例,静态变量的生命周期从类加载开始,到类销毁结束,只要程序加载了类,不用声明任何实例,静态变量就会被分配内存空间,实例变量则依赖于类声明的实例,当实例销毁时,实例变量也会被销毁。无论类声明了多少个实例,永远都只声明了一个static变量由所有实例共同使用,下面贴了一张代码

/**
 * Created by DELL on 2019/12/9.
 */
public class Time{     //时间类
    static int year = 1996;   //年份
    int month = 12;         //月份
    int day = 29;             //日期

    public Time(){
        this.year++;       //自增1
        this.month++;     //自增1
        this.day++;       //自增1
    }

    public static void main(String []args){
        Time time1 = new Time();     //创建第一个实例
        System.out.println("year:"+time1.year+", month:"+time1.month+", day:"+time1.day);
        Time time2 = new Time();     //创建第二个实例
        System.out.println("year:"+time1.year+", month:"+time1.month+", day:"+time1.day);
    }
}

运行结果:

运行结果
从结果可以看出,在创建两个实例时,变量month和day的值并没有改变,而变量year的值却自增1,这是因为,未由static修饰的变量month和day都属于实例变量,所以创建不同的实例时,每个实例都创建了属于实例本身的month和day变量,而变量year属于类,并不属于实例,所以两个实例修改的其实是同一个year变量,所以year变量的值产生了变化。

相关文章

  • Java实例变量(方法)与类变量(方法)

    Java实例变量Java类变量(静态变量)

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • 初始化执行顺序

    Java初始化的顺序如下: 父类的静态变量 父类的静态代码块 子类的静态变量 子类的静态代码块 父类的非静态变量...

  • java相关零碎知识

    java初始化,加载顺序: 父类的静态成员变量,父类静态代码块,子类的静态成员变量,子类的静态代码块,父类非静态成...

  • Java知识点总结

    Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...

  • 静态内部类实现懒加载单例模式

    代码 为什么 Java程序的初始化顺序依次是:父类静态变量-->父类静态代码块-->子类静态变量-->子类静态代码...

  • log4j2使用手册(中文)第六章 使用

    静态Logger VS 非静态Logger 与Java中的任何变量一样,Logger可以声明为静态变量或类成员变量...

  • 十、类

    1.类的组织 遵循标准java约定,类的组织最好是这样的顺序。公共静态常量->私有静态变量->公共变量->私有变量...

  • Java基础知识

    一、Java内存结构 分类: 1、方法区: 存放所有的①类(class),②静态变量(static变量),③静态方...

  • Java修饰符详解

    静态变量 静态变量与实例变量的区别如下: 对于静态变量,运行时,Java 虚拟机只为静态变量分配一次内存,在加载类...

网友评论

      本文标题:JAVA类静态变量

      本文链接:https://www.haomeiwen.com/subject/dlabgctx.html