创建和初始化对象的过程(整个构造方法的执行流程),和类的加载过程

1.创建和初始化对象的过程

非子类对象的创建和初始化

1.为该对象分配内存空间,同时将成员变量进行默认初始化。

2.执行显示初始化。

3.执行构造方法的赋值初始化。

子类对象的创建和初始化

分为上溯和向下执行两个流程

上溯:首先为子类进行内存空间的分配,同时进行默认值初始化,然后上溯到其父类,父类也进行内存空间的分配,同时进行默认值初始化,继续上溯到object类。

向下执行:对object类依次进行显式初始化,和构造方法初始化,然后继续向下执行此过程,知道最下方的子类依次完成显示初始化和构造方法初始化。整个流程结束。

2.类加载的流程

无父类的普通类的加载过程(其实也是有object父类,这里不做考虑)

1、加载:查找和导入Class文件2.链接:其中解析步骤是可以选择的 (a)检查:检查载入的class文件数据的正确性 (b)准备:给类的静态变量分配存储空间 ,并且执行默认初始化(c)解析:将符号引用转成直接引用3、类的初始化:对静态变量,静态代码块执行显示初始化工作。

有父类的类加载过程

1.加载(同上),2.链接,此过程就有了上溯的一个过程,从子类开始向上,依次给类的静态变量分配空间,并且进行默认初始化。3.类的显示初始化,从object类向下依次对静态变量和代码块进行显示初始化。

注:同一个类的加载只进行一次。

并且类并不会一下被全部加载到系统中,用到哪个类就加载哪个类。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值