java 代码块

Java中的代码块主要有三种类型:普通代码块、静态代码块、构造代码块。它们的用途和执行时机各不相同。

  1. 普通代码块 :在方法内部定义,使用一对大括号{}包围的代码片段。它的作用域限定在大括号内,每当程序执行到该代码块时就会执行其中的代码。

  2. 静态代码块 :使用static关键字定义,属于类级别的代码块。静态代码块在类被加载到JVM时执行,且只执行一次。常用于初始化静态变量。

  3. 构造代码块 :没有任何前缀修饰,直接使用一对大括号{}定义在类中。每次创建类的实例时,构造代码块都会执行,并且在构造方法执行前执行。常用于所有构造方法共享的代码。

下面是这三种代码块的示例:

在这个例子中,当BlockExample类被加载时,静态代码块首先执行。然后,每次使用new关键字创建BlockExample类的实例时,构造代码块会在构造方法之前执行。最后,当调用method方法时,其中的普通代码块会执行。

java 复制代码
public class BlockExample {
    // 静态代码块
    static {
        System.out.println("静态代码块执行");
        // 初始化静态变量或执行仅需执行一次的代码
    }

    // 构造代码块
    {
        System.out.println("构造代码块执行");
        // 执行所有构造方法共享的初始化代码
    }

    // 构造方法
    public BlockExample() {
        System.out.println("构造方法执行");
    }

    public void method() {
        // 普通代码块
        {
            int localVariable = 10;
            System.out.println("普通代码块执行,局部变量值为: " + localVariable);
        }
    }

    public static void main(String[] args) {
        BlockExample example = new BlockExample();
        example.method();
    }
}
java 复制代码
class test2 extends test1 {

    static {
        System.out.println("test2 static");
    }

    public static void main(String[] args) {
        test2 t = new test2();
        t.mth();

        test2 t2 = new test2();
        t2.mth();
    }

    {
        System.out.println("test2 block");
    }

    @Override
    public void mth() {

        {
            System.out.println("test2 method block");
        }
        System.out.println("test2");
    }
}
相关推荐
研☆香几秒前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
右耳朵猫AI10 分钟前
PHP周刊2026W28 | 安全更新、Laravel 13.18、Twig 3.28
开发语言·php·laravel
second6016 分钟前
第一部分:快速上手 —— 建立 C++ 基本语法与编程范式
开发语言·c++
郝学胜-神的一滴26 分钟前
算法实战:最小k个数——大顶堆的优雅解法
开发语言·数据结构·c++·python·程序人生·算法·排序算法
bksczm37 分钟前
linux之线程概念和控制
linux·开发语言·c++
掘金_答案42 分钟前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
JackieZhengChina1 小时前
零依赖轻量级JS悬浮提示插件title2tip-js的使用教程
开发语言·javascript·ecmascript
hehelm1 小时前
Linux网络编程—TCP字典翻译系统
linux·开发语言·网络·c++·tcp/ip
MindUp1 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
NG4771 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程