静态初始化块,普通初始化块,静态初始化变量,普通初始化变量,构造器

  1. 初始化块:又称为代码块,属于类中第四大成员变量。
语法:{} 或static{},其不是通过对象或类显式调用,而是隐式调用。
2.特点:
静态初始化块调用时机:加载类。只会调用一次,随类加载而加载。类只会加载一次。
普通初始化块调用时机:调对象。会调用多次,随着对象的创建而加载。
3.一个类中有多个普通初始化块和静态初始化块。静态的要早于普通的创建。同一个类型的执 行顺序随定义的先后顺序来。
4.一个类中如果有:静态初始化块,普通初始化块,普通属性初始化,静态属性初始化,构造 器。则在第一次new一个对象时,先加载静态初始化块||静态属性初始化》普通属性||普通属性初始化》构造器。
5.有父子类的
第一次执行顺序:
①爷爷的静态初始化块||爷爷的静态属性初始化。》
②父亲的静态初始化块||父亲的静态属性初始化。》
③子类的静态初始化块||子类的静态属性初始化。》
④爷爷的普通初始化块||爷爷的属性初始化》构造器。》
⑤父亲的普通初始化块||父亲的属性初始化》构造器。》
⑥子类的普通初始化块||子类的属性初始化》构造器。》
静态块中也遵循静态特点:只能访问静态属性。

一道分析面试题:

结果:


猜你喜欢

转载自blog.csdn.net/shuimofengyang/article/details/79693002