构造函数与构造代码块的区别与应用

构造函数与构造代码块的区别与应用
一、概念:
构造代码块:直接在类中用{}定义的代码块称为构造代码块,每new一次就会执行
构造函数:给与之对应的对象进行初始化,它具有针对性,函数中的一种。
特点:
1:该函数的名称和所在类的名称相同。
2:不需要定义返回值类型。
3:该函数没有具体的返回值。
二、区别:
共同点:都是用来初始化对象的
不同点:构造代码块是给所有对象进行的统一初始化;构造函数是给对应的对象进行初始化

补充:
1、底层分析:
通过反编译可以看到,构造代码块中的代码也是在构造方法中执行的。在编译时的编译器看来会默认将构造代码块中的代码移动到构造方法中,并且移动到构造方法内容的前面。
2、静态代码块:
在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。  静态代码块只会执行一次 不管 new几次对象都是一样
3、静态代码块,构造代码块,构造方法的执行顺序:
静态代码块(一次) 先于 构造代码块(new几次就有几次)  先于 构造函数(new几次就有几次)  先于普通代码块(每次调用方法都会调用)

(静态代码块 》构造代码块》构造函数》普通代码块)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值