1.有关初始化
- 在方法内部如果调用了一个未被初始化的变量,编译器会提示错误信息,必须将该变量进行初始化操作;如果该变量作为一个类的数据属性字段,对于基础数据类型,将被自动初始化为相应的值:表示数字类型的为
0
,double,float
为0.0
,boolean
初始化为false
,char
为0
显示为空白字符,对于对象引用
,则初始化为null
。 - 初始化的顺序。在类的内部,变量定义的顺序决定了初始化的顺序,即使变量散落在类的各处,它们也将先被初始化。如果存在静态变量,则静态变量将会被最先初始化,再是非静态变量。静态初始化只在它们必要的时候才会进行,但只会被初始化一次。
- 构造器将在完成上述过程后执行。
虽然没有显示的定义,但构造方法也属于静态方法。创建对象时,java解释器将查找class文件,载入并会创建一个
Class
对象,所有关于静态初始化的动作将会执行,并在堆上为对象分配内存,将基本类型数据置为默认值,引用置为null,执行字段定义时的初始化动作,最后执行构造器。