静态变量
在定义一个类时,只是描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建创建该对象的实例后,系统才会给每个对象分配空间,存储各自的数据
但有时候,我们希望某些特定的数据在内存中只有一份,而且能够被一个类的所有实例对象共享
静态变量被所有实例所共享,可以使用“类名.变量名”来访问
注意:static只能修饰成员变量,而不能修饰局部变量:
public class S {
public void study() {
static int num = 123; //报错
}
}
静态方法
在不创建对象的情况下就可以调用某个方法,使用“类名 . 静态方法名”访问,在主方法中调用本类的静态方法可以省略类名.,当然也可以使用类的实例对象来访问
注意:在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法被调用时可以不创建任何对象。(例如:main方法中访问同类中的其他方法,此时其他方法上要加static)
静态代码块
当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次。在程序中,通常使用静态代码块来对类的成员变量进行初始化。
静态内部类
https://blog.csdn.net/chushoufengli/article/details/87721009