Java中构造方法,构造代码块和静态代码块执行顺序详解

本文详细分析了Java中构造方法、构造代码块和静态代码块的执行顺序,指出执行顺序为:静态代码块 -> 构造代码块 -> 构造方法。静态代码块在类加载时执行,而构造代码块和构造方法在创建对象时执行,其中构造代码块先于构造方法。理解这一顺序对于深入理解Java对象的初始化至关重要。
摘要由CSDN通过智能技术生成

前言:

构造方法,构造代码块和静态代码块的执行顺序是一个常见的面试题,精通Java的人都知道执行顺序为:“静态代码块——>构造方法——>构造代码块”,接下来对该顺序进行详细分析
分析:
1.构造方法的执行:

​ 所有的Java类中至少都会有一个构造方法,用于对象的初始化。
在这里每次创建新的对象时,红箭头所指的“ ( ) ”部分其实就是在调用构造方法插入图片描述
2.构造代码块的执行:

​ 构造代码块是类中编写的一个代码块成员,它与构造方法不同,如下图所示:
在这里插入图片描述
​ 我们定义一个对象后执行代码,结果如下:
在这里插入图片描述
​ 从上图我们可以发现,构造代码块的执行早于构造方法。

​ 实际上,构造代码块和构造方法执行的时机都很类似,甚至可以说功能上是重复的,那为什么还要使用构造代码块呢?是因为构造方法一般有很多种,比如无参构造,一参构造,二参构造等等,而有些操作是不论我们使用哪种构造方法都需要使用的,那么这时候使用构造代码块来放置这些操作,便不会因为构造方法太多而多次编写同样的操作,节省了我们的精力。
3.静态代码块的执行:

静态代码块,构造代码块和构造方法示例

​ 如上图,静态代码块由static修饰,我们知道,在Java中,使用static修饰的成员属性和成员方法,是独立于具体的变量和具体的方法的,它们并不是随着对象的创建而创建,而是在类加载时便已经初始化,换言之,可以将静态成员、静态方法和静态代码块看成是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值