Java代码块的理解

本文详细介绍了Java中代码块的概念,包括静态代码块和普通代码块的使用、执行时机以及它们在类加载和对象创建过程中的角色。强调了代码块在初始化操作中的优势,如减少代码重复,并详细阐述了类加载的顺序以及在有继承关系时的构造器调用顺序。此外,还解释了如何在创建对象时调用不同类型的代码块和构造方法。
摘要由CSDN通过智能技术生成

概念:

代码块又称为初始化块,属于类中的成员,类似于方法,将逻辑语句封装在方法体中,通过大括号包围起来。它在加载类时,或创建对象时隐式调用

基本语法:

[修饰符]{代码};

注意:

1、修饰符可选,要写的话,只能写static

2、结尾分号可以省略

代码块的好处:

1、相当于另外一种形式的构造器,可以做初始化操作,例如当多个构造器中都有重复的语句,可以抽取到初始代码块中

细节:

1、static代码块叫做静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,每创建一个对象就执行一次

2、类什么时候被加载

a)创建对象实例时(new)

b)创建子类对象实例,父类也会被加载,而且父类先被加载 

c)使用类的静态成员时(静态属性、方法)

3、普通代码块,在创建对象实例时,会被隐式的调用,被创建一次就会调用一次,如果只是使用类的静态成员时,普通代码块不会执行

4、创建一个对象时,在一个类的调用顺序:

a)调用静态代码块和静态属性初始化(静态代码块和静态属性初始化调用的优先级相同,如果有多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用)

b)调用普通代码块和普通属性的初始化(和a)同理)

c)调用构造方法

举例:

 

结果为:

5、有继承关系时的调用顺序

a)父类的静态代码块和静态属性初始化

b)子类的静态代码块和静态属性初始化

c)父类的普通代码块和普通属性初始化

d)父类的构造器

e)子类的普通代码块和普通属性初始化

f)子类的构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值