static(静态的):
可以修饰:属性、方法、代码块、内部类
修饰属性:
静态属性(类变量) VS 非静态属性(实例变量)
实例变量:每创建一次对象,对象就会有一套独立的非静态属性
类变量:无论创建多少次对象,对象们都共同拥有一个静态属性
如果通过其中一个对象,去修改静态属性,其他对象去调用静态属性也是被修改过的(会被影响)
其他说明:
①静态变量随着类的加载而加载,可以通过"类.静态变量"的方式进行调用
②静态变量的加载要早于对象的创建
③类只会加载一次,则静态变量在内存中也只会存一份,存在方法区的静态域中
④类变量可以使用类调用、对象调用(不推荐)。实例变量只能对象调用
修饰方法:
1.随着类加载而加载,通过类.方法调用
2. 静态方法 类调用、对象调用(不推荐)。非静态方法 对象调用。
3.静态方法中,只能调用静态方法或属性(它们都随着类加载而加载)
非静态方法中,既能调用非静态也可以调用静态的方法或属性(因为静态先加载 因此非静态这些后加载的可以调用)
其他说明:
①在静态的方法不能使用this或super关键字
②对于静态的属性,使用的时候省略的是"类.“而不是"this.”
③从生命的周期去理解