面向对象高级特性-static
可以用来修饰属性,方法,*代码块(或初始化块),*内部类
static修饰属性(类变量):
1.由类创建的所有的对象,都共用这一个属性
2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。VS 实例变量(非static修饰的属性,各个对象拥有一套副本)
3.类变量随着类的加载而加载
4.静态的变量可以直接通过“类。变量”的形式调用
5.类变量的加载早于对象(实例变量),实例变量是随着对象的创建而加载的,所以当有对象以后,可以“对象。类变量”使用,但是“类。实例变量”是不行的
6.类变量存在于静态域中
static修饰方法(类方法):
1.随着类的加载而加载,在内存中独一份
2.可以直接通过”类。类方法“的方式调用
3.在静态方法内部可以调用静态的属性或静态的方法,因为他们生命周期一样,不能调用非静态的水星或方法。反之,非静态的方法可以调用静态的属性或方法
4.静态的
注:静态的结构(static的属性,方法,代码块,内部类的生命周期要早于非静态的结构,同时被回收也要晚于非静态的结构
static:使用静态的变量可以实现“累加”的效果