java-各种成员变量初始化过程-待完善

前置条件

java-各种成员变量初始化过程-待完善_第1张图片

一、本文章讨论的成员变量

    public static final String aa = "aa";
    public static final Integer bb = 1;
    public static final Students cc = new Students();
    public static String aa1 = "aa";
    public static Integer bb1 = 1;
    public static String bb2 = Test36.AA2 +"AA3";
    public static Students cc1 = new Students();

static final 修饰变量,如果可以在编译期推导出来,则在编译器分配内存及赋值,如果不能则在初始化赋值。

static 修改 在链接阶段的准备阶段分配内存并赋默认值(int 类型为0,Integer 为 null,对象 为 null)

然后再初始化时赋值。

父类静态成员变量0

父类静态代码块执行...

子类静态成员变量初始化a0

子类静态代码块执行了....

父类非静态成员变量1

父类非静态代码块执行...

父类无参构造方法执行

子类非静态成员变量初始化b0

子类非静态态代码块执行了....

子类的无参构造方法执行

Setter被执行——spring容器

类的初始化,参考

https://blog.csdn.net/aoxiang_yuanfang/article/details/110329375?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-110329375-blog-5293427.235^v38^pc_relevant_sort_base3&spm=1001.2101.3001.4242.1&utm_relevant_index=3

你可能感兴趣的:(java,开发语言)