静态变量、静态方法、静态代码块的加载
静态变量、静态方法、静态代码块的加载
静态变量
类只加载一次,且在需要时才被首次加载到内存中
静态变量是基于类的,只会被加载一次,一个类的所有对象共用一个静态变量,因此调用【对象.静态变量名】永远都是那一个变量
而实例变量是基于对象的,不同的对象对应不同的实例变量
例如:
执行结果
静态方法
方法(静态方法与实例方法),无论该类有多少个实例,在内存中都只有一份,共用一个方法
静态方法与实例方法的区别:
1)静态方法是在类被加载到内存时被加载到方法区,只加载一次;而实例方法是对象创建时才被加载
2)静态方法可以直接通过类名使用,而实例方法必须通过对象使用
3)静态方法的调用方式:“类名.方法名”、“对象.方法名”,而实例方法的调用方式只有一种“对象.方法名”
4)静态方法中只能使用静态成员,而实例方法可以使用静态成员和实例成员
5)静态方法中不能使用this
静态代码块
类被加载是加载,常用于类的初始化(在main函数前执行)