static关键字
属性
主要是为了让类的所有对象共享一个属性
方法
- 静态方法只能调用静态属性(普通方法所有属性都可以调用)
- 类方法和普通方法都是随着类的加载而加载存储在方法区,但普通方法需要new 对象才能调用
- 不可以使用this,super等字样
静态属性和方法的使用一般都是 类名.
代码块
构造器的补充,进行初始化
代码块的使用机制
静态代码块和静态属性类加载时会进行加载,只会发生一次
类加载的情况
- 创建对象实例
- 创建子类实例
- 使用静态成员(方法、属性)
普通代码块和属性 创建实例时进行,每创建一个实例发生一次
只使用静态属性时,普通代码块不会被执行
创建对象时类的加载顺序
-
静态代码块和静态属性,优先级一样,按顺序进行,如果存在父类
-
普通代码块和普通属性,优先级一样,按顺序进行,如果存在父类
-
构造器
-
例子
-