当我们编写一个类时,当我们使用new关键字才会产生对象,系统才会分配内存的空间给对象,其方法才能被外部调用。而sattic修饰的结构,是随着类的加载而进行加载的,也就是说静态结构和对象的创建是 没有关系的。并且类在整个生命周期中只加载一次,所以static修饰的结构也只会加载一次 。话句话说,static修饰的结构是属于类的,不是属于对象的。
static关键字可以修饰那些结构呢?
- 属性
- 方法
- 代码块
- 内部类
其中修饰属性和修饰方法是最常用的。
static修饰属性【静态变量】:
上面也提到了,静态变量只会加载一次,系统只会为它分配一次空间,所以这个类的所有对象共享这一个空间。也就是说A对象修改了静态变量的值,B对象静态变量的值 也会随之改变。
类、类变量、实例对象、对象,之间的调用规则:
类变量 | 实例变量 | |
类 | 可以调用 |