一文带你详细了解【代码块】

本文详细介绍了Java中的四种代码块类型:普通代码块、构造块(实例与非静态)、静态代码块及同步代码块,探讨它们的执行顺序和应用场景,帮助理解初始化过程和代码组织原则。

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

1. 代码块的概念以及分类

使用 { } 定义的一段代码称为 代码块,根据代码块的位置以及关键字,又可以分为4种:

  • 普通代码块
  • 构造代码块 (非静态代码块、实例代码块)
  • 静态代码块
  • 同步代码块

那接下来我们一一对这几种代码块进行介绍!

2. 代码块的解析

2.1 普通代码块

所谓普通的代码块:就是定义在方法中的代码块

在这里插入图片描述
生命周期:到了这就创建,出了这个代码块就销毁了!


2.2 构造块(非静态代码块、实例代码块)-----> 用来初始化非静态的数据成员

所谓的构造块:就是在类里面,方法外面的代码块

在这里插入图片描述
从图中,可以看出在调用构造方法之前,先执行 构造块,然后再执行构造方法 ,和它们两个先后顺序无关!


再来看另外一种情况! 当非静态成员变量直接赋值的情况下,那么构造代码块和 非静态的成员变量。就看定义的顺序,谁在最后,最后的值就是哪个
在这里插入图片描述

Tips:我们可以这样理解,程序在编译好之后,会将构造快拷贝到构造方法中的最前面部分去!!

2.3 静态代码块---->初始化静态的成员,或者提前准备一点数据

所谓的静态代码块,就是类的里面,方法的外面,加上一个static关键字

在这里插入图片描述
从上图中可看出,静态代码块执行顺序是最优先的!无论位置在哪里。(只要这个类被加载,静态代码块都会被执行

Tips:

  • 静态代码块不管生成几个对象,只会执行一次
  • 静态成员变量是类的属性,因此在JVM加载类时开辟空间并初始化
  • 如果一个类中包含多个静态代码块,在编译的时候,编译器会按照定义的顺序依次执行
  • 实例代码块只有在创建对象的时候才会执行

2.4 同步代码块

后期在进行解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个想打拳的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值