【Java】对象的创建过程

我与影子孤独终老i 提交于 2021-02-19 01:51:34

一、对象的创建过程

  1.首次创建对象时或该类静态方法/静态域首次被访问时,JAVA解释器查找该类的路径,定位该类的class文件

  2.载入该类的class文件,有关静态初始化的所有动作执行,但是只执行一次。

  3.当用new方法创建对象时,在堆上为对象分配足够的存储空间

  4.清零分类的存储空间使该类的基本类型设置成为默认值,引用为null

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

  6.执行构造器

注意

  初始化顺序是先静态对象后非静态对象,然后构造器初始化。

  静态对象初始化只进行一次,(1)在首次生成相应类的对象时  (2)首次访问类中的静态数据成员时。

  构造器实际是静态方法。

  构造器的任务:检查对象是否被正确地构造。

二、构造器创建对象执行过程

  1.为对象分配空间

  2.实例变量默认初始化

  3.执行构造器进行初始化

  4.通过this给实例变量赋值

  5.构造器返回对象给引用变量

注意

  构造器是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但是这个对象并不是完全由构造器负责创建的

  实际上,当调用构造器时,系统会先为该对象分配内存空间,并为这个对象执行默认初始化,这个对象已经产生了,这些操作在构造器执行之前都完成了。

  也就是说,当系统开始执行构造器的构造体之前,系统已经创建一个对象,只是这个对象还不能被外部程序访问,只能在该构造器中通过this来引用

  当构造器的执行体执行结束后,这个对象作为构造器的返回值被返回,通常还会赋给另一个引用变量,从而让程序外部可以访问该对象。

  复杂对象调用构造器地顺序:调用基类构造器->自身成员初始化->调用自身构造器

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!