static修饰分为:静态代码块,静态常量,静态变量,静态方法,
生成顺序:父类静态(代码块,常量,变量,方法(被动调用))->子类静态(代码块,常量,变量,方法(被动调用))->父类代码块(成员变量)->父类构造函数->父类方法->子类代码块(成员变量)->子类构造函数->子类方法
static特点:
1、被所有的对象调用
2、先与对象创建
3、可以用作类名调用
4、伴随类的加载而加载
static存放位置:
1、非静态成员存放在堆区域
2、静态成员存放在方法区
static生命周期:
1、伴随类的加载生成,类的消失而消失
2、非静态伴随对象的产生而生成,对象的消失而消失
static的注意事项:
1、因为静态成员先于对象生成,所以不能使用this,super等关键字
2、非静态方法能访问静态成员和非静态成员,
3、静态方法只能访问静态成员
静态代码块与静态方法,非静态方法
1、静态代码块,静态常量,静态变量,是主动执行,只执行一次。静态方法是被动执行。
2、非静态代码块,属性是new对象一次,调用一次
3、静态方法在类加载的已经加载,通过类名调用。