对于一个对象来说,它的创建过程或者说初始化过程是怎样进行的,我们在设计自己的类时又要如何保证对象的初始化顺利进行?
基本的初始化过程如下:
- 当首次创建类型为MyClass的对象(构造器可看成静态方法),或首次调用(访问)MyClass类的静态方法(静态数据域),Java解释器查找类路径,定位MyClass.class文件;
- 载入MyClass.class,创建一个相应的Class对象,执行此类中的所有静态初始化动作,静态初始化只在Class对象首次加载时进行一次;若此对象有父类,则先执行上述动作;
- 当用new创建MyClass对象时,将在堆上为MyClass对象分配足够的存储空间,这块存储空间会被清零,这就自动将MyClass对象中的所有基本类型数据设置成默认值,对象引用设置成null;若此对象有父类,则先执行上述动作;
- 按照类成员域的定义顺序执行初始化工作,然后调用构造方法;若此对象有父类,则先执行上述动作。