Java中的代码块

一、概述

使用大括号包起来的一段代码。放在不同的位置,有不同的名称,有不同的作用,有不同的执行时机。

二、分类

1.局部代码块

  1. 位置:局部代码块位于方法体中;
  2. 作用:限定变量的生命周期,及时的释放内存空间提升代码的运行效率;
  3. 执行时机:该方法被调用时执行;
  4. 注意事项:
    1)如果是在局部代码块中声明了变量,会减少变量的声明周期,出了局部代码块就无法继续使用局部代码块中声明的变量。
    2)如果是在局部代码块中修改了局部代码块外声明的变量,局部代码块结束之后,并不会消除局部代码块对这个变量的修改。
  5. 代码示例
public static void main(String[] args) {
        int c = 66;
        //局部代码块
        //作用:用于限定变量的作用域,让没有用的变量,及时被回收释放内存空间
        {
            int a = 3;
            System.out.println(a);//3
            c = 5;
        }
        //System.out.println(a);会报错
        System.out.println(c);//5
    }

2.构造代码块

  1. 位置:位于类中方法外;
  2. 作用:用于给成员变量初始化赋值;
  3. 执行时机:创建对象时执行;
  4. 执行说明:
    (1)在创建对象的时候执行,由jvm默认调用
    (2)在构造方法执行之前,执行
    (3)任意一个构造方法执行之前,都会执行一次构造代码块的内容
    (4)将每个构造方法都会执行的内容,提取到构造代码块中
    (5)默认初始化 > 显式初始化赋值 > 构造代码块赋值 > 构造方法初始化.
  5. 代码示例:
class Test {
    String name;

    public Test() {
        this(null);
    }

    public Test(String name) {
        System.out.println("构造代码块执行了");
        this.name = name;
    }
	//构造代码块
	{
        System.out.println("构造代码块执行了");
    }

}

3.静态代码块

  1. 位置:类中方法外;
  2. 作用:
    用于给静态的成员变量初始化赋值
    用于执行那些只需要执行一次的代码,例如驱动加载等
  3. 执行时机:类加载的时候执行;
  4. 执行特点:
    (1)随着类的加载而执行
    (2)类只加载一次,所以静态代码块只执行一次
    (3)执行的时机最早:早于所有的对象相关内容
  5. 代码示例:
class Test1 {
	//静态代码块
    static {
        System.out.println("静态代码块执行了");
    }
	//构造代码块
    {
        System.out.println("构造代码块执行了");
    }

}

4.同步代码块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值