码迷,mamicode.com
首页 > 其他好文 > 详细

对象的创建过程

时间:2018-02-24 23:01:31      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:内存   通过   就是   基本   java对象   字段   strong   设置   初始化顺序   

一、对象的创建过程

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

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

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

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

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

  6.执行构造器

注意

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

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

  构造器实际是静态方法

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

  1.为对象分配空间

  2.实例变量默认初始化

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

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

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

注意

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

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

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

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

对象的创建过程

标签:内存   通过   就是   基本   java对象   字段   strong   设置   初始化顺序   

原文地址:https://www.cnblogs.com/zzhangyuhang/p/8467688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!