1. 类文件的加载:首先加载该类的.class文件,然后再依次加载各基类的.class文件,直到
最上层的.class文件。
2. 文件加载后,首先从最上层的基类开始初始化各个层次的类的static成员。
3. 为该对象分配存储空间,并将该空间初始化为二进制的零值。
4. 将该对象内所有的基本类型的成员变量初始化为缺省值(对于数值型和char型来说,缺省值为0;对于boolean来说,缺省为false.),将成员变量中的对象引用设为null。
5. 从最上层的基类开始,执行所有的出现于数据定义处的初始化动作。
6. 从最上层的基类开始调用各个类的构造函数。
最上层的.class文件。
2. 文件加载后,首先从最上层的基类开始初始化各个层次的类的static成员。
3. 为该对象分配存储空间,并将该空间初始化为二进制的零值。
4. 将该对象内所有的基本类型的成员变量初始化为缺省值(对于数值型和char型来说,缺省值为0;对于boolean来说,缺省为false.),将成员变量中的对象引用设为null。
5. 从最上层的基类开始,执行所有的出现于数据定义处的初始化动作。
6. 从最上层的基类开始调用各个类的构造函数。
博客介绍了Java对象创建的初始化流程。先加载类的.class文件及基类文件,接着初始化各层类的static成员,为对象分配并初始化为二进制零值,将基本类型成员设为缺省值、对象引用设为null,再执行数据定义处的初始化动作,最后调用各层类的构造函数。

1万+

被折叠的 条评论
为什么被折叠?



