java知识点

java 变量初始化顺序

总结一下对象的创建过程,假设有个名为Dog的类

1.即使没有显式地使用 static关键字,构造器实际上也是静态方法。因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,
ava解释器必须査找类路径,以定位 Dog. class文件。

2然后载入 Dog.class(后面会学到,这将创建一个Clas对象),有关静态初始化的所有动作都会执行。因此,静态初始化只在 Class对象首次加载的时候进行一次

3.当用 new Dog0创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。

4.这块存储空间会被清零,这就自动地将Dog对象中的所有基本类型数据都设置成了默认值 (对数字来说就是0,对布尔型和字符型也相同),而引用则被设置成了nul

5执行所有出现于字段定义处的初始化动作。

6.执行构造器。正如将在第7章所看到的,这可能会牵涉到很多动作,尤其是涉及继承的
时候。