1.可以修饰属性:
(1)被 static 修饰的属性称为静态属性、静态变
量、类变量
(2)语法: static 数据类型变量名;
static 数据类型变量名=值;
(3)特点:静态属性基于类而存在,和创建多少对
象无关,所有的对象共享同一份
(4)使用:
a .可以通过对象名.静态属性名
b .可以直接通过类名.静态属性名﹣》建议
2.可以修饰方法
(1)被 static 修饰的方法称为静态方法(2)语法:
访问修饰符 static 返回值类型方法名(形
参){}
(3)注意:访问修饰符和 static 之间没有先后顺序
(4)使用:类名.静态方法名(实参);
(5)静态方法中只能访问本类的静态成员
(6)静态方法中不能使用 this / super 关键字
思考: System . out . println ();实现原理?
System :类
out :静态属性-》对象,被 static println :-》方法
3.可以修饰代码块
(1)被 static 修饰的代码块称为静态代码块(2)语法:
class 类名{
static {}
}
(3)作用:在类加载的时候,按照和静态属性定义
的先后顺序完成静态属性的初始化工作
(4)类加载:当 jvm 第一次使用一个类的时候,通过 classpath 找到对应的. class 文件,对文件进行读取,读取该类的相关信息(包、类、父类、属性、方法、构造方法等),将读取到的信息保存到 jvm 内存中,一个类类加载只进行一次。(5)类加载的时机(什么叫第一次使用一个类)
a .第一次访问该类的静态成员(静态属性、方法)
b .第一次创建该类对象:
先进行类加载,再完成对象的创建 c .子类类加载,会导致其父类先类加载