• 【Java】对象的创建过程


    一、对象的创建过程

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

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

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

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

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

      6.执行构造器

    注意

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

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

      构造器实际是静态方法。

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

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

      1.为对象分配空间

      2.实例变量默认初始化

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

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

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

    注意

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

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

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

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

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

  • 相关阅读:
    一个网络狂人的财富轨迹
    婚姻的精髓
    软件史上最伟大的十大程序员
    由瓜子理论引出的人力资源管理启示
    感情裂缝的"维修工" 在生活抛锚的地方起航
    寻找更新过的数据
    asp.net mvc中TempData和ViewData的区别
    SQL Server Backup
    VS字符串时间转换用法
    SQL Server 根据动态条件insert,update语句
  • 原文地址:https://www.cnblogs.com/zzhangyuhang/p/8467688.html
Copyright © 2020-2023  润新知