新建对象的过程以及对象初始化顺序

本文详细解析了对象创建过程,包括方法区栈空间与堆中对象的构建,以及子类继承父类时的对象内存分配与构造方法调用顺序。特别强调了static代码块的执行时机与初始化的总体顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象创建的过程。

1,先在方法中创建栈空间,再在堆中创建对象,并对自己的成员变量赋值级代码块(基本数据的默认值)

2,对象调用自己的构造方法,构造方法进栈运行。

3,对象内存地址传递给this关键字。赋值操作等等。

4,构建方法运行结束,整个对象建立完成。

 

子类父类内存的创建过程。

1,创建子类对象,子类对象在同上创建,但划分两个区域储存。

2,子类对象一个区域留给父类,一个留给自己。

3,先实例化父类区域,完成父类区域赋值以及代码块的初始。

4,实例化子类区域,完成子类区域的事,

5,调用构造方法,进入父类构造方法,在进入子类构造方法。

6.构造方法结束,完成对象建立。

 

静态代码块在初始的时候第一步分配的时候直接执行并且只执行一次。

 

所以初始化的顺序。

总体是父类先于子类。

static代码块在最前面,且只执行一次。

代码块中或者属性的初始化(赋值),看代码书写先后顺序。

构造器,父类无参构造器然后子类构造器。

完成初始化。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值