假设有个类名为dog的类;
- 即使没有显示的使用static关键字,构造器实际上是一个静态的方法;首次创建Dog对象时,或者静态方法或者静态域首次被访问时,java解释器必须查找类路径,定位Dog.class文件;
- 然后载入,Dog.class,有关静态初始化的所有动作都会执行;因此,静态初始化只在class对应首次加载的时候进行一次;
- 当用new Dog()创建对象时.首次将子啊堆上为Dog对象分配存储空间;
- 这块存储空间会被清零,这就自动将Dog对象中的所有基本类型都设置成默认值(数字类型,布尔类型,字符型都是0), 引用类型设置为null;
- 执行所有出现于字段定义处的初始化动作;
- 执行构造器;