为类变量(静态变量)分配内存,且设置该类变量的默认初始值,如:int = 0
不包含 final 和static 同时修饰的变量,因为final修饰的在编译阶段就会分配了,准备阶段会显示初始化
没static修饰的变量不会被初始化,这个是实例变量,不是类变量,实例变量会随着对象一起分配到堆中
静态变量的赋值是在构造阶段处理的。所以在构造前一直是分配默认值
实际情况只有被 final 和 static 同时修饰的变量,在准备阶段,通过ContstantValue被显示赋值,其余均在 构造器中初始化赋值,且通过ContstantValue被显示赋值仅支持基础类型和字符串,因为基础类型和字符串在编译期就放入常量池中了。(有疑问,编译不就是生成二进制的class文件吗)